私はスマートカードからの証明書を使用してファイル署名を行うアプレットを持っています。つまり、それを機能させるにはいくつかの追加のアクセス許可が必要です:ローカルマシン上のファイルとして.dllをロードする、一時ファイルを作成するなど.
関連するすべての jar は署名され、Java Web Start として開始されます。
init() メソッドから完全なロジックが呼び出されると、すべてが正常に機能するという混乱を招きます。
public void init() {
try {
File directory = new File("C:/Temp");
deployPKCS11Library(directory);
testFullCycleOnApplet("C:/somefile.txt");
} catch (Exception e) {
e.printStackTrace();
}
}
init メソッドをtestFullCycleOnApplet
取り出して、初期化後にボタンをクリックして実行すると、次のようになります。
java.security.AccessControlException: access denied ("java.util.PropertyPermission" "java.io.tmpdir" "read")
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.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)...
init メソッドには、制限されたものを実行するためのより多くの権利がありますか? 設定したJNLPファイルで
<security>
<all-permissions />
</security>