我使用一些Jasypt加密库设置了一个项目,当代码尝试执行时,第一个加密操作会引发以下错误。
Caused by: java.lang.SecurityException: The jurisdiction policy files are not signed by a trusted signer!
at javax.crypto.JarVerifier.verifyPolicySigned(JarVerifier.java:289)
at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:316)
at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:261)
at javax.crypto.JceSecurity.access$000(JceSecurity.java:48)
at javax.crypto.JceSecurity$1.run(JceSecurity.java:78)
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:76)
... 9 more
经过一段时间的研究,似乎很明显我只需要替换我的JCE加密策略文件。我从这个链接下载了jce7 zip: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
我解压缩该文件并将两个jar复制到C:\ Program Files(x86)\ Java \ jre7 \ lib \ security
我刚才提到的jre7上也有一个jre6目录。在第一次尝试不起作用后,我也尝试将相同的策略文件复制到jre6目录。我也尝试过将jre6特定的罐子复制到该目录而没有运气。
编辑:我正在运行Java 1.7.0_40
非常感谢任何帮助。 谢谢!
答案 0 :(得分:1)
两个策略文件进入“jre7 / lib / security”文件夹,因为README.txt文件指示,覆盖现有文件,而不是“jre7”根文件夹。另请注意,您必须使用与JRE匹配的正确文件 - Java 7策略文件可能在Java 6中不起作用,反之亦然。
另请参阅此问题:How to avoid installing "Unlimited Strength" JCE policy files when deploying an application?