我希望通过 Java Web Start 签署一个用于分发的战争文件。
据我了解,jar 签名工具会忽略 META-INF 目录的内容,因此签名过程不会更改 jar 文件的摘要值。
同样的过程是否适用于战争文件?我从未在 war 文件的根目录中使用过 META-INF 目录,而且我不确定这样做是否合法。
即使是这样,Webstart 安全管理器会接受它作为正确签名的文件吗?
提前致谢,
抢。
我希望通过 Java Web Start 签署一个用于分发的战争文件。
据我了解,jar 签名工具会忽略 META-INF 目录的内容,因此签名过程不会更改 jar 文件的摘要值。
同样的过程是否适用于战争文件?我从未在 war 文件的根目录中使用过 META-INF 目录,而且我不确定这样做是否合法。
即使是这样,Webstart 安全管理器会接受它作为正确签名的文件吗?
提前致谢,
抢。
jarsigner 不会忽略整个 META-INF 目录。以下文件不包含在签名中,
它对WAR一无所知。如果您签署 WAR,它将被视为 JAR,因此所有规则都将适用。
在 WAR 的根目录中有一个 META-INF 是完全合法的。这就是 context.xml 所在的位置。
我什至不知道 Web Start 支持 WAR。听起来您正在尝试使用 Web Start 部署 Web 服务器。这是一个有趣的想法。
应用服务器是否支持或未签署战争或耳朵无关紧要。只要您部署 ear,它就可以工作。如果您以一种违反签名的方式更改 ear,则将发生 java.security 异常,并且由于普通的 java.security 异常,应用程序服务器不会启动您的 ear(或 war)。
这是在 WebLogic 12g 上测试的,但是由于依赖于 java(不是 J2EE 容器)的机制的性质,我相信它适用于所有应用程序服务器。