JNLP を介した Java アプレットのデプロイに取り組んでいます。アプレットの機能は期待どおりに動作します。実行時に表示されるセキュリティ警告に問題があります。いつ、なぜそれらが表示されるのかについて、十分な回答がないので、ここでいくつかの回答を得ようと思いました。
Premises: 私のアプレットは、信頼できる CA としてもインポートされる自己署名証明書を使用して署名されています (「より安全に見える」という警告が表示されます)。本番環境では Thawte または Verisign の実際の証明書を使用しますが、現時点ではこれで十分です。外部権限は必要なく、ディスク アクセスは JNLP を介してのみ行われます。
FileSaveService と FileOpenService を使用できるようにしたいので、JNLP ファイルのセキュリティ部分で j2ee-application-client-permissions タグを指定しました。
Javascript は、アプレットでパブリック関数を呼び出すために使用されます。
アプレットがロードされると、このアプレットがシステムへの無制限のアクセスで実行されることを警告するセキュリティ プロンプトが表示されます。警告は、黄色の警告ではなく青色の情報表示を持つ信頼できるものです。この警告が表示されるのはなぜですか? JNLP ライブラリのみを使用し続けた場合でも、これは常に表示されますか? この警告はどのように判断されますか?コードをスキャンするか、変更可能な設定を読み取るか? この警告を受けずに実行できるクラスのリストはありますか?
アプレットが読み込まれ、ファイル ダイアログを開こうとすると、アプリケーションが読み取り/書き込み権限を要求したことを示すプロンプトが再び表示されます。
後の警告は、JNLP を使い始めたときに最初に表示されたので、JNLP の警告だと思います。起動時と使用中にプロンプトが表示されるのはなぜですか? 両方を取得する必要がありますか? 適切な証明書を取得したら、両方を取得できますか?
最も重要なことは、最初の警告を取り除きたいということです。アプレットを無制限のアクセスで実行できるようにするのはかなり怖いように見えるからです (特に、それは私の意図ではないためです!)。警告の原因と対処方法を明確にするドキュメントはありますか?
編集: ファイルはエラーなしで Janela で検証されます。すべてが正常に起動します。理解したいのは警告です。
<script>
var attributes = {
id:'id',
codebase:'www.mydomain.com/jars/',
width:1,
height:1,
name:"Name"
};
var parameters = {
jnlp_href:"www.mydomain.com/jars/jnlp.jnlp"
}
deployJava.runApplet(attributes, parameters, '1.6');
</script>
JNLP ファイル
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" href="/jars/jnlp.jnlp">
<information>
<title>Title</title>
<vendor>My Company</vendor>
<description>Description</description>
<description kind="short">Desc</description>
<offline-allowed />
</information>
<resources>
<j2se version="1.6+" />
<jar href="ext1.jar" main="false" download="eager"/>
<jar href="ext2.jar" main="false" download="eager" />
<jar href="mainJar.jar" main="true" download="eager"/>
</resources>
<applet-desc
name="name"
main-class="com.myCompany.applet.mainClass"
width="1"
height="1">
</applet-desc>
<security>
<j2ee-application-client-permissions/>
</security>
</jnlp>