Jon*_*erg 7 java macos applet manifest wordle-game
我是Wordle的作者,Wordle是野外少数幸存的Java小程序之一.
最近,我收到用户报告,警告我的(已签名)applet很快将被JRE黑名单,因为它没有在其清单中明确指定"Permissions"属性.所以,现在MANIFEST.MF 正确指定了
Permissions: sandbox
Run Code Online (Sandbox Code Playgroud)
和<applet>标签包括神奇
<param name="permissions" value="sandbox" />
Run Code Online (Sandbox Code Playgroud)
param,记录在案.
现在,那些向后弯腰安装OS X JRE 7的人可以毫无困难地运行Wordle,但是人们(像许多学校IT管理员一样)坚持使用JRE 6根本无法运行applet; 他们得到
java.lang.SecurityException: JAR manifest requested to run in sandbox only:
http://wordle.appspot.com/j/v1390/wordle.jar
at com.sun.deploy.security.DeployManifestChecker.verify(DeployManifestChecker.java:106)
at com.sun.deploy.security.DeployManifestChecker.verify(DeployManifestChecker.java:84)
at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(TrustDecider.java:319)
at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(TrustDecider.java:280)
at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(TrustDecider.java:270)
at sun.plugin2.applet.Plugin2Manager.isAppletSigned(Plugin2Manager.java:3289)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3207)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1536)
at java.lang.Thread.run(Thread.java:695)`
Run Code Online (Sandbox Code Playgroud)
症状表明Java 6插件假定签名的applet应该以all-permissions模式运行,并认为sandbox清单中的请求是错误的.换句话说,它忽略permissions了applet标签中的参数.
除了将applet设置为以all-permissions模式运行之外,有没有人知道我可以帮助我的用户?我宁愿保持沙盒,因为我不希望人们害怕使用Wordle,因为我不想创建一个攻击面.
小智 1
好吧,我尝试了很多!如果不是全部!我很确定没有办法让自签名的小程序在最新更新(1.6.0_65-b14-462-10M4609)的沙盒模式下运行。我唯一的机会就是