最近开发项目时,把jdk环境从1.6切到1.7之后,项目正常启动,但是当进行业务处理时,就报这个错:
Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted signers!
之前从没遇到过这个问题,于是上网谷歌百度,知道这个问题涉及到了JCE,JCE可能大家都不怎么熟悉。
JCE,Java Cryptography Extension,在早期JDK版本中,由于受美国的密码出口条例约束,Java中涉及加解密功能的API被限制出口,所以Java中安全组件被分成了两部分: 不含加密功能的JCA(Java Cryptography Architecture )和含加密功能的JCE(Java Cryptography Extension)。在JDK1.1-1.3版本期间,JCE属于扩展包,仅供美国和加拿大的用户下载,JDK1.4+版本后,随JDK核心包一起分发;
我的问题的出现是由于环境切到了jdk1.7,但是jce版本跟我的jdk版本不匹配。
解决方法:
下载local_policy.jar 和 US_export_policy.jar
下载之后就是覆盖原文件
如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security下覆盖原来文件,记得先备份。
如果安装了JDK,将两个jar文件也放到%JDK_HOME%\jre\lib\security下
然后,问题就解决了