.cab ファイルから .jar ファイルにアップグレードした署名済みアプレットを Microsoft VM で実行するとセキュリティー例外がスローされる


症状

.cab ファイルから .jar ファイルに署名済みアプレットをアップグレードすると、そのアプレットは Microsoft VM で動作しなくなります。Sun JRE では正常に実行されます。

原因

このエラーは、Microsoft VM に署名済み .jar ファイルのサポートがないために起こります。 While the Microsoft VM supports unsigned .jar files through the archive attribute of the <APPLET> tag, classes and resources within signed .jar files are treated as untrusted in the 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>

詳細情報

なし