在JRE 7u21下运行时,Applet因AccessControlExceptions失败

时间:2013-05-28 04:20:19

标签: java security applet

我有一个自签名小程序,运行正常,直到7月21日到来。

现在,在调用java.net.ProxySelector.setDefault时,我得到以下AccessControlException:

Caused by: java.security.AccessControlException: access denied
("java.net.NetPermission" "setProxySelector")
        at java.security.AccessControlContext.checkPermission(Unknown Source)
        at java.security.AccessController.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkPermission(Unknown Source)
        at sun.plugin2.applet.FXAppletSecurityManager.checkPermission(Unknown Source)
        at java.net.ProxySelector.setDefault(Unknown Source)

为了测试我尝试删除此调用,但其他AccessControlExceptions开始弹出。显然,7u21对applet的安全模型进行了重大更改。

我一直认为,如果用户接受applet的数字签名,则不适用任何安全限制。 7u21现在说即使是签名的applet也可以在沙盒模式下运行,但没有明确指出何时出现这种情况。 (7u21 release notes)。 Java控制面板中的安全级别滑块设置为中(最低级别)。有什么建议如何解决这个问题?

更新:我通过添加安全标记

解决了这个问题
<security>
    <all-permissions/>
</security>  

到applet的jnlp文件(applet通过dtjava部署)。它现在在7u21下运行没有问题。

0 个答案:

没有答案