我已经实现了一个applet,到目前为止还没有遇到Java 6的麻烦。最近,当我切换到Java 7时,applet停止工作,在javascript控制台中显示以下异常:
Uncaught Error: java.security.AccessControlException: access denied ("java.util.PropertyPermission" "user.home" "read")
此行为始终可重现,只需使用Linux命令update-java-alternatives
从一个Java版本切换到另一个版本即可。
小程序是自签名的,它的所有公共方法都调用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新的安全限制和/或如何规避它们吗?
发布于 2013-08-09 17:31:14
一些信息可以在Do java applets have to be signed with trusted cert authority with new v7 update 21?和http://www.oracle.com/technetwork/java/javase/7u21-relnotes-1932873.html中找到
在2013年10月的下一次计划的安全更新中将有更多的限制。
其中一个要求是从自签名applet切换到来自可信机构的证书。
https://stackoverflow.com/questions/18143026
复制相似问题