java.lang.SecurityException:签名文件条目没有清单部分
我尝试过其他线程中的建议,但它们对我没有帮助。 当我通过java.lang.SecurityException:签名文件条目没有清单部分,java,security,ant,Java,Security,Ant,我尝试过其他线程中的建议,但它们对我没有帮助。 当我通过java-jar-BigJar.jar运行jar时,我收到异常: 线程main java.lang.SecurityException中的异常:签名文件条目edu/iris/pissers/IfSeismogramMgr/MotionVectorAttributeHelper.class没有清单部分 我的ant文件是 <project name="USGS VHP" default="help" basedir=".">
java-jar-BigJar.jar运行jar时,我收到异常:
线程main java.lang.SecurityException中的异常:签名文件条目edu/iris/pissers/IfSeismogramMgr/MotionVectorAttributeHelper.class没有清单部分
我的ant文件是
<project name="USGS VHP" default="help" basedir=".">
<description>USGS VHP Main Build File</description>
<property name="root" location="." />
<property name="classdir" value="classes" />
<property name="contrib" value="http://volcanoes.usgs.gov/software/contrib" />
<target name="help">
<echo>
Available targets:
help -- displays this help information
init --
clean -- deletes lib/*.jar files
touch -- touch *.java in source tree
contrib -- download the contrib library (use before building)
build -- build the USGS codebase (use after checkout *)
</echo>
</target>
<target name="init">
</target>
<target name="clean">
<delete>
<fileset dir="${root}/lib/" includes="*.jar" />
</delete>
</target>
<target name="touch">
<touch>
<fileset dir="${root}/../" includes="**/*.java" />
</touch>
</target>
<target name="contrib" depends="init" description="Download the contrib libraries">
<mkdir dir="${root}/contrib" />
<get src="${contrib}/colt.jar" dest="${root}/contrib/colt.jar" />
<get src="${contrib}/comm.jar" dest="${root}/contrib/comm.jar" />
<get src="${contrib}/commons-collections-3.2.1.jar" dest="${root}/contrib/commons-collections-3.2.1.jar" />
<get src="${contrib}/fissuresIDL-1.0.jar" dest="${root}/contrib/fissuresIDL-1.0.jar" />
<get src="${contrib}/fissuresImpl-1.1.13.jar" dest="${root}/contrib/fissuresImpl-1.1.13.jar" />
<get src="${contrib}/fissuresUtil-1.0.18.jar" dest="${root}/contrib/fissuresUtil-1.0.18.jar" />
<get src="${contrib}/forms-1.0.7.jar" dest="${root}/contrib/forms-1.0.7.jar" />
<get src="${contrib}/jai_codec.jar" dest="${root}/contrib/jai_codec.jar" />
<get src="${contrib}/jai_core.jar" dest="${root}/contrib/jai_core.jar" />
<get src="${contrib}/jnlp.jar" dest="${root}/contrib/jnlp.jar" />
<get src="${contrib}/JSAP-2.1.jar" dest="${root}/contrib/JSAP-2.1.jar" />
<get src="${contrib}/jtransforms-2.4.jar" dest="${root}/contrib/jtransforms-2.4.jar" />
<get src="${contrib}/log4j-1.2.13.jar" dest="${root}/contrib/log4j-1.2.13.jar" />
<get src="${contrib}/looks-2.0.4.jar" dest="${root}/contrib/looks-2.0.4.jar" />
<get src="${contrib}/mysql.jar" dest="${root}/contrib/mysql.jar" />
<get src="${contrib}/rrd4j-2.0.5.jar" dest="${root}/contrib/rrd4j-2.0.5.jar" />
<get src="${contrib}/JavaSeedLite.jar" dest="${root}/contrib/JavaSeedLite.jar" />
<get src="${contrib}/seedCodec-1.0.6.jar" dest="${root}/contrib/seedCodec-1.0.6.jar" />
<get src="${contrib}/servlet.jar" dest="${root}/contrib/servlet.jar" />
<get src="${contrib}/seisFile-1.5.2.jar" dest="${root}/contrib/seisFile-1.5.2.jar" />
<get src="${contrib}/slf4j-api-1.7.1.jar" dest="${root}/contrib/slf4j-api-1.7.1.jar" />
<get src="${contrib}/slf4j-log4j12-1.7.1.jar" dest="${root}/contrib/slf4j-log4j12-1.7.1.jar" />
<get src="${contrib}/javassist.jar" dest="${root}/contrib/javassist.jar" />
<get src="${contrib}/thymeleaf-2.0.13.jar" dest="${root}/contrib/thymeleaf-2.0.13.jar" />
<get src="${contrib}/ognl-2.6.7.jar" dest="${root}/contrib/ognl-2.6.7.jar" />
<get src="${contrib}/oscache-2.1-mod2.jar" dest="${root}/contrib/oscache-2.1-mod2.jar" />
<get src="${contrib}/seedlink_lite_1.2.1.jar" dest="${root}/contrib/" />
<get src="${contrib}/seedlink_lite_src_1.2.1.jar" dest="${root}/contrib/" />
<get src="http://repo1.maven.org/maven2/com/h2database/h2/1.3.173/h2-1.3.173.jar" dest="${root}/contrib/h2.jar" />
</target>
<target name="build" depends="init" description="Build USGS codebase">
<!-- Order is important. Some projects depend on others. -->
<ant target="jar" inheritAll="false" antfile="${root}/../Util/build.xml" />
<ant target="jar" inheritAll="false" antfile="${root}/../Math/build.xml" />
<ant target="jar" inheritAll="false" antfile="${root}/../Net/build.xml" />
<ant target="jar" inheritAll="false" antfile="${root}/../Plot/build.xml" />
<ant target="jar" inheritAll="false" antfile="${root}/../Pinnacle/build.xml" />
<ant target="jar" inheritAll="false" antfile="${root}/../VDX/build.xml" />
<ant target="jar" inheritAll="false" antfile="${root}/../Valve3/build.xml" />
<ant target="jar" inheritAll="false" antfile="${root}/../Earthworm/build.xml" />
<ant target="jar" inheritAll="false" antfile="${root}/../Winston/build.xml" />
<ant target="jar" inheritAll="false" antfile="${root}/../Swarm/build.xml" />
</target>
<target name="jar" depends="build" description="Create one large jar file">
<jar destfile="${root}/lib/usgs.jar">
<fileset includes="**/**.class" dir="${root}/../Util/${classdir}" />
<fileset includes="**/**.class" dir="${root}/../Earthworm/${classdir}" />
<fileset includes="**/**.class" dir="${root}/../Math/${classdir}" />
<fileset includes="**/**.class" dir="${root}/../Net/${classdir}" />
<fileset includes="**/**.class" dir="${root}/../Pinnacle/${classdir}" />
<fileset includes="**/**.class" dir="${root}/../Plot/${classdir}" />
<fileset includes="**/**.class" dir="${root}/../Swarm/${classdir}" />
<fileset includes="**/**.class" dir="${root}/../Valve3/${classdir}" />
<fileset includes="**/**.class" dir="${root}/../VDX/${classdir}" />
<fileset includes="**/**.class" dir="${root}/../Winston/${classdir}" />
</jar>
</target>
<manifest file="lib/MANIFEST.MF">
<attribute name="Main-Class" value="gov.usgs.swarm.Swarm" />
</manifest>
<jar destfile="SwarmMentics.jar" manifest="lib/MANIFEST.MF">
<zipgroupfileset dir="contrib" includes="*.jar" />
<zipgroupfileset dir="lib" includes="*.jar" />
<zipfileset src="contrib/colt.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/comm.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/commons-collections-3.2.1.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/commons-net-3.2.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/fissuresIDL-1.0.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/fissuresImpl-1.1.13.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/fissuresUtil-1.0.18.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/forms-1.0.7.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/h2.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/jai_codec.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/jai_core.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/JavaSeedLite.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/javassist.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/jgoodies-looks-2.5.3.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/jnlp.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/JSAP-2.1.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/jtransforms-2.4.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/log4j-1.2.13.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/looks-2.0.4.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/mysql.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/ognl-2.6.7.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/oscache-2.1-mod2.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/rrd4j-2.0.5.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/seedCodec-1.0.6.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/seedlink_lite_1.2.1.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/seedlink_lite_src_1.2.1.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/seisFile-1.5.2.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/servlet.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/slf4j-api-1.7.1.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/slf4j-log4j12-1.7.1.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="contrib/thymeleaf-2.0.13.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/earthworm.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/math.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/net.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/pinnacle.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/plot.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/swarm.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/usgs.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/util.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/valve.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/vdx.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
<zipfileset src="lib/winston.jar">
<exclude name="**/*.RSA, **/*.SF, **/*.DSA" />
<exclude name="META-INF/MANIFEST.MF"/>
</zipfileset>
</jar>
</project>
USGS VHP主构建文件
现有目标:
帮助--显示此帮助信息
初始化--
clean--删除lib/*.jar文件
touch——源代码树中的touch*.java
contrib——下载contrib库(在构建之前使用)
构建——构建USGS代码库(签出后使用*)
如您所见,我从每个jar中排除了RSA、SF和DSA文件以及MANIFEST.MF
但这对我纠正这个错误没有帮助
如果你知道smth,请回复
谢谢大家! 此错误消息确切地说明了为什么不建议将捆绑jar用于生产版本。问题是您的一些依赖项jar是用签名文件签名的。重新打包可能会违反依赖项jar上的某些安全策略
要使其正常工作,您需要先从已签名的jar中删除所有签名文件,然后再将未打包的文件复制到最终的构建jar文件中
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>${project.artifactId}-${project.version}-uber</finalName>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</plugin>
org.apache.maven.plugins
maven阴影插件
包裹
阴凉处
${project.artifactId}-${project.version}-uber
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
看起来你可能要把罐子装两次。首先使用ZipGroup文件集,然后再使用一系列ZipFileSet
您可能会删除ZipGroup文件集
我相信你的工作也有问题。
您可以将其更改为:
<zipfileset src="contrib/fissuresUtil-1.0.18.jar">
<exclude name="**/*.RSA" />
<exclude name="**/*.SF" />
<exclude name="**/*.DSA" />
</zipfileset>
或者这个:
<zipfileset src="contrib/fissuresUtil-1.0.18.jar" excludes="**/*.RSA,**/*.SF,**/*.DSA"/>
请参阅(zipfileset是文件集的一种形式),以了解更多有关此方面的信息
另一方面,类似这样的事情可能会简化一些:
<jar destfile="SwarmMentics.jar" manifest="lib/MANIFEST.MF">
<restrict>
<not>
<or>
<name name="**/*.RSA"/>
<name name="**/*.SF"/>
<name name="**/*.DSA"/>
</or>
</not>
<archives>
<zips>
<fileset dir="contrib" includes="**/*.jar"/>
<fileset dir="lib" includes="**/*.jar"/>
</zips>
</archives>
</restrict>
</jar>
在“合并档案”部分下。只需删除导入的已签名jar(在meta\u inf文件夹中)中的*.SF文件即可。对不起,我使用ANT,在我的ANT文件中,我在发布之前就这样做了。请查看ANT文件的结尾。我在另一篇文章中读到了这一点