提问者:小点点

如何在没有安全警告的情况下发布JavaWeb Start jnlp应用程序?


我有一个从网站上的jnlp文件启动的Java应用程序。我试图让它运行而不在运行前闪烁一堆安全警告。

该程序被分成大约10个不同的jar文件,30个左右jar库,以及几个本地库也包含在jar文件中。

我已经用官方代码签名证书(来自威瑞信)签署了所有的jar文件,在包含主类的jar文件中包含了jnlp文件,并为我正在编译的主10个jar添加了权限和代码库属性。

当我启动程序时,我收到消息说:

此应用程序将在未来的Java安全更新中被阻止,因为JAR文件清单不包含权限属性。请联系发布者以获取更多信息。

我可以单击“运行”来通过此消息,但随后我得到:

阻止运行可能不安全的组件?应用程序包含签名和未签名的代码。

我已经为正在编译的所有jar文件添加了权限属性。我是否也必须更新我正在使用的第三方库的jar清单?如果是这样,有没有简单的方法可以做到这一点?我正在使用Apache Ant来构建应用程序。


共2个答案

匿名用户

是的,您必须更新所有jar
您可以将这些属性直接从文件添加到jar文件(所有jar)的清单中-

在您的插件目录中:

jar ufm <jar_file> additionalAttribute.txt

这个addtionalAtbante. txt将包含您的附加清单属性,例如-

Permissions: all-permissions  
Codebase: *  
Application-Name: My App  
Caller-Allowable-Codebase: *  
Trusted-Library: true
Application-Library-Allowable-Codebase: *

匿名用户

我是否必须更新我正在使用的第三方库的jar清单?

是的。我们应用程序的所有部件、所有罐子都有相同的安全要求。