コンピューターで実行する特定のアプレットを指定したいjava.security.AllPermission
(デバッグおよびセキュリティ テスト用)。ただし、実行するすべてのアプレットがこの権限を持つようにしたくありません。そのため、ユーザー Java ポリシー ファイル (テストを通じて正しいポリシー ファイルであることを確認済み) を編集して、次の値を入力しようとしました。
grant codeBase "http://host_where_applet_lives/-" {
permission java.security.AllPermission;
};
この値は、アプレットが何か強力なことを行おうとすると失敗します (私の場合は、新しいスレッドを作成します)。ただし、次の値を入れると:
grant {
permission java.security.AllPermission;
};
アプレットは強力な操作を実行できます。唯一の違いは、codeBase
属性がないことです。
ここで尋ねられた同様の質問に対する回答 [1] は、AccessController.doPrivileged()
呼び出しが必要になる可能性があることを示唆しているように見えました (ただし、表示も証明もされていません)。私には、すべてのアプレットにアクセス許可を付与するときにその呼び出しが必要ないため、これは間違っているように思えます (2 番目に示した例)。これが解決策であるとしても、私が実行するアプレットにAccessController.doPrivileged()
呼び出しを散らかすことは簡単ではなく、必ずしも可能でもありません。それに加えて、私のテストでは、これはとにかく機能しないことが示されています。しかし、それに関するより多くのアイデアを聞くことができてうれしいです。
[1]イントラネット アプレット用に構成された AllPermission を取得できません。誰でも助けることができますか?