0

私はアプレットを実装しましたが、これまでのところ Java 6 で問題なく動作しています。最近、Java 7 に切り替えたときにアプレットが動作を停止し、javascript コンソールに次の例外が表示されました。

Uncaught Error: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.home" "read")

この動作は一貫して再現可能であり、Linux コマンドである Java バージョンから別のバージョンに切り替えるだけupdate-java-alternativesです。

アプレットは自己署名されており、そのすべてのパブリック メソッドは invoke を呼び出しますAccessController.doPrivileged()。次に例を示します。

public File chooseFile() {
    return AccessController.doPrivileged( new PrivilegedAction<File>() {
        public File run() {
            JFileChooser chooser = new JFileChooser();
            chooser.setMultiSelectionEnabled(false);                
            return chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION ? 
                    chooser.getSelectedFile() : null;
        }
    } );
}

ローカル ファイルを使用して問題を解決しましたjava.policyが、特別なインストール手順を要求することはできません。

これらのJava 7の新しいセキュリティ制限と/またはそれらを回避する方法を知っている人はいますか?

4

1 に答える 1

1

いくつかの情報は、新しい v7 アップデート 21 を使用して信頼できる認証局で署名する必要がありますか? に記載されています。およびhttp://www.oracle.com/technetwork/java/javase/7u21-relnotes-1932873.html

2013 年 10 月に予定されている次のセキュリティ更新プログラムでは、さらに制限が追加されます。

1 つの要件は、自己署名アプレットから信頼できる機関からの証明書に切り替えることです。

于 2013-08-09T09:31:13.940 に答える