我有一个从网站的jnlp文件启动的Java应用程序。我试图让它运行而不会在它运行之前闪现一堆安全警告。
该程序分为大约10个不同的jar文件,大约30个jar库,以及jar文件中还包含的几个本机库。
我已经使用官方代码签名证书(来自Verisign)签署了所有jar文件,包含了保存主类的jar文件中的jnlp文件,并在主要的10个罐子中添加了权限和代码库属性我正在编译。
当我启动程序时,我收到消息说明:
此应用程序将在未来的Java安全更新中被阻止 因为JAR文件清单不包含权限 属性。有关详细信息,请与发布者联系。
我可以点击“运行”来通过此消息,但后来我得到了:
阻止可能不安全的组件运行?应用程序 包含有符号和无符号代码。
我已将权限属性添加到我正在编译的所有jar文件中。我是否必须更新我正在使用的第三方库的jar清单?如果是这样,有没有一种简单的方法可以做到这一点?我正在使用Apache Ant来构建应用程序。
答案 0 :(得分:0)
我是否必须更新我正在使用的第三方库的jar清单?
是。所有部件,我们应用程序的所有Jars都具有相同的安全要求。
答案 1 :(得分:0)
是的,你必须更新所有的罐子 您可以将这些属性直接添加到文件的清单(所有jar ) -
在你的插件目录中:
jar ufm <jar_file> additionalAttribute.txt
此additionalAttribute.txt将包含您的其他清单属性,如 -
Permissions: all-permissions Codebase: * Application-Name: My App Caller-Allowable-Codebase: * Trusted-Library: true Application-Library-Allowable-Codebase: *