.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>詳細情報
なし