Java 7未签名的applet权限1.7.0_45

csa*_*ler 4 java permissions applet unsigned

我们有一个需要特定权限的applet,我们会签署并授予所有权限.
然而,在开发时我们使用未签名的applet.
我们在其主目录中的用户的.java.policy文件中设置所有权限.

这已经停止在1.7.0_45(或可能是_40)中工作,因为未签名的applet不再具有额外的权限.
我们看到这样的错误:
引起:java.security.AccessControlException:访问被拒绝("java.util.PropertyPermission""OurCustomSystemProperty""read")

原因
Sun已在1.7.0_45或40中更改了未签名小程序的安全行为.
他们现在已创建并设置了新的部署属性:

deployment.security.use.user.home.java.policy=false
Run Code Online (Sandbox Code Playgroud)

这意味着默认情况下会忽略用户的.java.policy文件.

决议
请参阅下面的答案.

csa*_*ler 6

解析度

或者:

A.编辑deployment.properties并将以上属性设置为true
此路径的格式为:C:\ Users\USERNAME\AppData\LocalLow\Sun\Java\Deployment\deployment.properties
在任何地方添加这样的行文件:

deployment.security.use.user.home.java.policy=true
Run Code Online (Sandbox Code Playgroud)

要么

B.编辑JRE的中央java.policy文件并向applet授予所有权限
此路径的格式为:C:\ Program Files(x86)\ Java\jre7\lib\security\java.policy

HTH!