使用java 7u45启动已签名的applet时出现的问题

use*_*369 7 java security manifest signed-applet

我们有一个小程序也使用javascript来applet通信.

在将java升级到7u45之后,根据此链接,我们使用清单来构建jar的更改如下:

  • 添加权限:对所有JAR的清单的所有权限
  • 将Application-Library-Allowable-Codebase:*添加到所有JAR的清单中
  • 将Caller-Allowable-Codebase:*添加到所有JAR的清单中
  • 将Codebase:*添加到所有JAR的清单中

我们也禁用了-Djnlp.packEnabled参数.

通过这些更改,只有当可用的Java版本更新为JRE7u45时,我们的应用程序才能正常运行.

  1. 但是尝试使用Java 7 update25或update40启动相同的应用程序时,我们收到错误" LiveConnect (JavaScript) blocked due to security settings".但是如果我们只是包含Trusted-Library并将其设置为true,则不要在清单中包含上述参数.我们能够启动应用程序但有警告.同样的方法不能用于JRE7u45,我们再次获得安全警告.

在其中一篇文章中,我看到了构建两个jar的方法(一个方法为1,另一个方法为2),并基于java版本部署相应的jar.

但是这个解决方案可能不那么有效,因为我们的应用程序包含5个以上的jar文件,并且维护每个文件的两个副本很繁琐.

您的建议将有助于我们了解我们的应用程序将与所有Java版本一起启动的方法.

jan*_*jan 1

从 Java 7 Update 51 开始,您应该能够使用 (Trusted-Library) 和新参数。那么只有 Java 7 Update 45 应该有警告,所有其他版本都应该可以工作。