7

我是Wordle的作者,它是少数幸存的 Java 小程序之一。

最近,我收到用户报告警告说我的(签名的)applet 很快就会被 JRE 列入黑名单,因为它没有在其清单中明确指定“Permissions”属性。所以,现在 MANIFEST.MF正确指定

    Permissions: sandbox

并且<applet>标签包括神奇的

    <param name="permissions" value="sandbox" />

参数,如记录

现在,安装 OS X JRE 7 的人可以毫不费力地运行 Wordle,但卡在 JRE 6 上的人(像许多学校 IT 管理员一样)根本无法运行小程序。他们得到

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)`

症状表明 Java 6 插件假定签名的小程序应该在all-permissions模式下运行,并认为sandbox清单中的请求是错误的。换句话说,它忽略了标签中的permissions参数。applet

除了将小程序设置为在模式下运行之外,有谁知道我有什么方法可以帮助我的用户all-permissions?我宁愿留在沙盒中,因为我不希望人们害怕使用 Wordle,也因为我不想创建攻击面。

4

2 回答 2

2

Apple 回复我的错误报告。

苹果开发者关系2014 年 8 月 15 日下午 5:12

工程部门根据以下情况确定这是一个需要第三方解决的问题:

此问题与 Oracle 清单检查器有关,它与 Oracle 为开发人员提供的在 Java 7 中运行小程序的说明相冲突。

我们交付了 Oracle 的 Java SE 6 安全检查器,正如他们在我们的 Java SE 6 版本中设计的那样。它与 Java 的未来版本相互不兼容,但 Apple 不会采取任何措施来解决它,因为我们不再支持 Java SE 6 10.6.8。

我们现在关闭此错误报告。

如果您对此问题的解决有疑问,请使用该信息更新您的错误报告。

请务必定期检查新的 Apple 版本,了解可能影响此问题的任何更新。

换句话说,他们不再支持 Apple Java(即使任何使用 OS X 10.6.8 或更早版本的人都被迫使用 Apple Java),所以他们将此归咎于甲骨文的原始规范——显然甲骨文自己没有不遵循,否则 Oracle Java 6 将存在同样的错误。

于 2014-09-10T06:33:08.000 回答
1

好的,我尝试了很多!如果不是一切!我很确定没有办法让自签名小程序在最新更新 (1.6.0_65-b14-462-10M4609) 的沙盒模式下运行。我唯一的机会是

  • 降级到 1.6.0_51
  • 从 manifest 和 applet-tag 中完全删除 Permissions 标记和参数
于 2013-11-13T11:44:18.067 回答