签署Java war文件并在<war root =“”> / META-INF </war>中包含MANIFEST.MF是否有效

时间:2009-10-12 15:36:05

标签: java servlets java-web-start

我希望签署一个war文件,以便通过Java Web Start进行分发。

据我所知,jar签名者工具忽略了META-INF目录的内容,因此签名过程不会改变jar文件的摘要值。

同样的过程是否适用于war文件?我从来没有在war文件的根目录中使用META-INF目录,我不确定这样做是否合法。

即使是这样,Webstart安全管理员会将其作为正确签名的文件接受吗?

提前致谢,

罗布。

2 个答案:

答案 0 :(得分:2)

jarsigner不会忽略整个META-INF目录。以下文件不包含在签名中,

  • META-INF / MANIFEST.MF
  • META-INF / SIG - *
  • META-INF / *。SF
  • META-INF / *。DSA
  • META-INF / *。RSA

它对WAR一无所知。如果您签署WAR,它将被视为JAR,因此所有规则都将适用。

在WAR的根目录中拥有META-INF是完全合法的。这就是context.xml所在的位置。

我甚至不知道Web Start支持WAR。听起来您正在尝试使用Web Start部署Web服务器。这是一个有趣的想法。

答案 1 :(得分:0)

应用服务器是否支持签名战争或耳朵无关紧要。只要你部署耳朵它就会起作用。如果以一种冒犯签名的方式改变耳朵,则会发生java.security异常,并且由于普通的java.security异常,应用服务器将无法启动(或战争)。

这是在WebLogic 12g上测试的,但由于依赖于java(而不是J2EE容器)的机制的性质,我确信它适用于所有应用服务器。