.cab
ファイルから.jar
ファイルにアップグレードした署名済みアプレットを Microsoft VM で実行するとセキュリティ例外がスローされる
症状
.cab
ファイルから.jar
ファイルに署名済みアプレットをアップグレードすると、そのアプレットは Microsoft VM で動作しなくなります。Sun JRE では正常に実行されます。原因
このエラーは、Microsoft VM に署名済み
.jar
ファイルのサポートがないために起こります。Microsoft VM では<APPLET>
タグのarchive
属性を通じて未署名.jar
ファイルをサポートしていますが、署名済み.jar
ファイル内のクラスやリソースは、Microsoft VM では信頼されていないものとして扱われます。その結果、そのアプレットは Microsoft VM によって信頼されていないものとして扱われることになり、アプレット sandbox 外部にアクセスが必要となるアプレットによるアクションは、セキュリティ例外になる場合があります。
解決方法
Microsoft VM によって認識可能なアプレット署名スキームは、
.cab
ファイルで使用する Authenticode だけです。回避するには、Sun JVM の場合は、アップグレードした
.jar
ファイルをarchive
属性を通じて指定します。Microsoft VM の場合はそのまま、.cab
ファイルをcabbase
を通じて指定します。次に例を示します。
<APPLET code="MyApplet" width=100 height=100>
<PARAM name="cabbase" value="package1.cab, package2.cab">
</APPLET>このコードを次のように変更します。
<APPLET code="MyApplet" archive="package1.jar, package2.jar"
width=100 height=100>
<PARAM name="cabbase" value="package1.cab, package2.cab">
</APPLET>詳細情報
なし