Bouncy Castle在由maven组装依赖关系的jar运行时抛出SecurityException

时间:2014-10-21 11:43:14

标签: maven bouncycastle

我使用maven程序集插件将我的程序打包在一个jar-with-dependencies(一个不可执行的jar包含我的程序以及从它所依赖的jar中提取的所有类)。当我打电话给Bouncy Castle加密文件时,它会抛出异常,其根本原因是:

  

java.util.jar.JarException:file:Foo.jar有未签名的条目

签署我的jar会解决问题吗?有没有办法让Bouncy Castle跳过检查未签名的课程?如果我确实需要签名,我可以在构建jar时让maven自动执行吗?

1 个答案:

答案 0 :(得分:0)

JCE是这些类型错误的一个来源。在Java 8中,错误是:

java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

问题是使用Maven shade之类的东西提取文件会破坏JCE(explanation)所需的签名。

解决方案是使用类似executable maven packer之类的东西来创建一个jar,它也保存BouncyCastle jar文件。