.cab
ファイルから.jar
ファイルにアップグレードされた署名付きアプレットを Microsoft Virtual Machine (VM) 内で実行すると、アプレットからセキュリティー例外がスローされる
症状
.cab
ファイルから.jar
ファイルに署名済みアプレットをアップグレードすると、そのアプレットは Microsoft VM で動作しなくなります。このアプレットは、Sun JavaTM Runtime Environment (JRETM) 実装では何のエラーもなく実行されます。原因
Microsoft VM は署名付き
.jar
ファイルをサポートしません。Microsoft VM は、<APPLET>
タグのarchive
属性経由で署名なし.jar
ファイルをサポートします。ただし、Microsoft VM は、署名付き.jar
ファイル内のクラスやリソースを信頼できないものとして処理します。その結果、アプレットは Microsoft VM によって信頼できないものとして処理されます。アプレットが実行するアクションのうち、アプレットのサンドボックスの外側へのアクセスを要求するアクションでは必ず、セキュリティー例外が発生します。
解決方法
Microsoft VM によって認識可能なアプレット署名スキームは、
.cab
ファイルで使用する Authenticode テクノロジだけです。Sun JRE の場合は、アップグレードした
.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>詳細情報
なし。