0

我已经实现了一个小程序,并且到目前为止一直在使用 Java 6 没有任何麻烦。最近,当我切换到 Java 7 时,小程序停止工作,在 javascript 控制台中显示以下异常:

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

这种行为始终可以重现,只需使用 Linux 命令从一个 Java 版本切换到另一个版本update-java-alternatives

小程序是自签名的,它的所有公共方法调用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

一些信息可以在Do java applet have to be signed with trust cert authority with new v7 update 21 中找到?http://www.oracle.com/technetwork/java/javase/7u21-relnotes-1932873.html

在 2013 年 10 月的下一次计划安全更新中会有更多限制。

一项要求是从自签名小程序切换到来自受信任机构的证书。

于 2013-08-09T09:31:13.940 回答