Java 将Bouncycastle安全提供程序添加到maven jar
大家好,我的社区 在尝试编译使用bouncycastle安全提供程序的maven项目时,我遇到以下错误:Java 将Bouncycastle安全提供程序添加到maven jar,java,maven,bouncycastle,Java,Maven,Bouncycastle,大家好,我的社区 在尝试编译使用bouncycastle安全提供程序的maven项目时,我遇到以下错误:java.lang.SecurityException:JCE无法验证提供程序BC 我知道jar必须签名,因此我将其添加到pom.xml中以防止编译错误: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin&
java.lang.SecurityException:JCE无法验证提供程序BC
我知道jar必须签名,因此我将其添加到pom.xml中以防止编译错误:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions>
<execution>
<phase>
package
</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
)我添加了以下内容:Security.setProperty(“java.policy”,“unlimited”)代码>并且我添加了具有以下内容的提供程序:Security.addProvider(新的BouncyCastleProvider())代码>
在我的公共空间里
不幸的是,这不起作用。对于如何实现上面链接的帖子中所示的东西,而不必为每个JRE单独实现它,您有什么建议吗?提前感谢您的帮助。我从以下问题中找到了可执行打包器maven插件()的解决方案:
它
org.apache.maven.plugins
maven编译器插件
3.7.0
1.8
1.8
台币
可执行打包器maven插件
1.0.1
mh.cryptomail.cryptomail
打包可执行jar
org.apache.maven.plugins
maven jar插件
3.2.0
真的
mh.cryptomail.cryptomail
它会将所有jar复制到结果jar中而不做任何修改,但在启动时(大约15秒)会花费更长的时间,因为它必须注册一个自定义类加载器,但它可以工作 bouncycastle jar已由bouncycastle密钥签名,而不是您的密钥。bouncycastle jar必须是独立的。所以没有办法将其包含在可执行jar中?我不这么认为。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>de.ntcomputer</groupId>
<artifactId>executable-packer-maven-plugin</artifactId>
<version>1.0.1</version>
<configuration>
<mainClass>mh.cryptomail.CryptoMail</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>pack-executable-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>mh.cryptomail.CryptoMail</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>