![](/img/trans.png)
[英]When building an application jar with Maven Shade, is it safe to exclude all META-INF/versions directories/files?
[英]jarsigner and files / directories in META-INF
我在签名jar文件时遇到问题。 我在META-INF目录中有一些文件,使用jarsigner时它们没有被签名,但是由于未签名的条目,验证失败。
我没有创建jar,因此无法更改其结构和/或删除文件。
如何从META-INF获取文件签名?
这是build.xml文件中用于操作JAR文件的部分:
1345 <jar destfile="${proj.build.webui.war.dir}/name.jar"
1346 update="true">
1347 <manifest>
1348 <attribute name="Permissions"
1349 value="all-permissions"/>
1350 <attribute name="Codebase"
1351 value="*"/>
1352 <attribute name="Trusted-Library"
1353 value="true"/>
1354 </manifest>
1355 </jar>
1356 <!-- sign the jar files -->
1357 <chmod perm="u+x">
1358 <fileset dir="${proj.buildtools.dir}">
1359 <include name="DsJarSigner"/>
1360 </fileset>
1361 </chmod>
1362 <signjar destDir="${proj.build.webui.war.dir}"
1363 alias="encryptedAlias"
1364 keystore="${proj.buildtools.dir}/keystore.jks"
1365 storepass="encryptedPassword"
1366 executable="${proj.buildtools.dir}/DsJarSigner"
1367 preservelastmodified="true" >
1368 <path>
1369 <fileset dir="${proj.build.webui.war.dir}" includes="name.jar" />
1370 </path>
1371 <flattenmapper />
1372 </signjar>
DsJarSigner是一个简单的Java程序,称为jarsigner。
看起来您的 jarsigner跳过了META-INF
的文件。 除了使用其他签名者之外,您无能为力。 例如,来自OpenJDK 8的jarsigner会跳过META-INF
一些文件 ,该文件被认为是“与签名相关”的,而其他文件则不会。 我观察到来自Oracle JDK的jarsigners也这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.