java.beans.Introspector.setBeanInfoSearchPath() メソッドの実行時に java.security.AccessControlException がスローされる


症状

Sun JavaTM Runtime Environment (JRETM) 実装を使ってブラウザ内でアプレットを実行すると、次に示すように、java.beans.Introspector.setBeanInfoSearchPath() メソッドの実行時に java.security.AccessControlException がスローされます。

java.security.AccessControlException:access denied (java.util.PropertyPermission * read,write)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPropertiesAccess(Unknown Source)
    at java.beans.Introspector.setBeanInfoSearchPath(Unknown Source)
    at ....

同じアプレットが、Microsoft Virtual Machine (VM) では何のエラーもなく実行されます。

原因

Introspector.setBeanInfoSearchPath() メソッドの呼び出しでは、BeanInfo クラスの検索に使用されるパッケージ名の一覧を変更できます。複数のアプレットが VM で実行中の場合、他のアプレットに BeanInfo の検索をリダイレクトするために、想定外のパッケージで、信頼されていないアプレットがこのメソッドを呼び出す可能性があります。これはセキュリティー上の欠陥です。

セキュリティーに関する事柄を扱うため、JRE では java.util.PropertyPermission に対するセキュリティーチェックを Introspector.setBeanInfoSearchPath() メソッドに追加します。署名なしのアプレットがこのメソッドを呼び出すと、java.security.AccessControlException がスローされます。

解決方法

上記の原因を修正するには、次の手順に従います。

詳細情報

        JAR 署名および検証ツールである「jarsigner」を参照してください。