最近、JNLP 経由でアプリケーションを起動するときに問題に遭遇しました。私は今、それを に絞り込みましたjava.security.AccessControlException
。これは、私のExecuterService
.
modifyThread
そのため、いくつか読んだところ、サービスを正常にシャットダウンするにはアクセス許可 ( ) が必要であることがわかりました。-tag (JNLP ファイル内) を使用して要求する必要があることもわかりましたが、その<security>
方法について少し混乱しています。
タグのドキュメントには次のように書かれています。
[...]
all-permissions
要素が指定されている場合、アプリケーションはクライアント マシンとローカル ネットワークに完全にアクセスできます。アプリケーションがフル アクセスを要求する場合、すべてのJAR ファイルに署名する必要があります。ユーザーにプロンプトが表示されます[ ...]
これを読むと、すべての権限を取得するか、まったく取得しないかを選択できるように思えます...これは、紛らわしい実装のように思えます。サービスをシャットダウンするのに必要なのは1つだけだからです。
また、この記事を読んで、すべてのアクセス許可を要求するべきではないと教えてくれました。ユーザーのコンピューターを開いて悪意のあるコードを実行してしまうからです。
では、特定のアクセス許可 ( modifyThread
) のみが必要であり、そのため、jar に署名する必要がないことを指定する方法はありますか? それとも、「jar に署名してすべてを要求する」アプローチを使用する必要がありますか?