2013-12-18 127 views
2

我有一个Java应用程序是从一个jnlp文件启动的一个网站。我试图让它在运行前不会闪烁一堆安全警告而运行。如何发布没有安全警告的Java Web Start jnlp应用程序?

该程序分解为大约10个不同的jar文件,30个左右的jar库以及一些包含在jar文件中的本地库。

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

当我启动程序我得到的消息,指出:

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

我可以单击“运行”,以避开此消息,但后来我得到:

阻止可能不安全的成分从正在运行?应用程序 包含签名和未签名的代码。

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

回答

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: * 
0

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

是的。所有部件,我们应用程序的所有Jars都具有相同的安全要求。

+0

是否有一种使用Ant构建添加清单属性的简单方法?当我创建jar时,我知道该怎么做,但这些已经是现有的jar了。 – Austin