編集:Java 7 Update 45のバグのため、Trusted-Libraryをマニフェストファイルに追加しないでください。新しい属性Caller-Allowable-Codebaseを追加するだけです。詳細については、この質問を参照してください。Javaアプレットマニフェスト-すべてのCaller-Allowable-Codebaseを許可する
Java 7 Update 21は2013年4月16日にリリースされ、アプレットにこの警告ダイアログの表示を開始させました。
リリースノートによると:JDK 7u21以降、特権アプレット内のコードを呼び出すJavaScriptコードは混合コードとして扱われ、署名されたJARファイルがTrusted-Library属性でタグ付けされていない場合は警告ダイアログが表示されます。
これを修正するには、manifest.mfファイルを編集して、次のような行を追加します。
Trusted-Library: true
ただし、これを行う前に十分に注意する必要があります。署名されたアプレットをjavascriptから呼び出すことができる場合、悪意のあるユーザーがユーザーのコンピューターに有害なことを行う可能性があります。
アプレットを保護する簡単な方法の1つは、アプレットが他のWebサイトで実行されないようにすることです。これを行うには、サイトに一致しない場合に例外を調べてスローするコードをinit()
メソッドに配置します。getCodeBase().getHost()
Java 7 Update 25では、アプレットを実行できるサイトを制限する別の方法が導入されています。マニフェストファイルで次のようにCodebase属性を設定できます。
Codebase: test.example.com www.example.com
Java 7 Update 45(2013年10月16日リリース)では、LiveConnectシステム(javascript-to-appletブリッジ)にさらに変更が加えられ、別のプロンプトが表示される可能性があります。この記事では、7u45の変更について説明しています:https ://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45
基本的に、プロンプトを回避するために、マニフェストファイルに以下を追加することもできます。
Caller-Allowable-Codebase: test.example.com www.example.com
アプレットを含む製品を販売していて、それを展開できるドメインがわからない場合は、ここにデータを入力できます*。