使用JCE时使用" Maven构建失败管辖区政策文件不是由可信赖的签名者签署的!"

时间:2014-11-18 18:35:01

标签: java security maven permissions jce

我正在使用JCE在我的项目中加密和解密。我在$ JAVA_HOME / jre / lib / security下安装了必要的java安全jar。同样在我的eclipse开发环境中,我指的是正确的jre。在日食中一切正常。但是当我使用maven构建项目时,它失败并带有以下例外

 The jurisdiction policy files are not signed by a trusted signer!

到目前为止已经尝试过了。

通过在其他任何事情之前初始化以下代码块来尝试黑客攻击

 try {
    Field field = Class.forName("javax.crypto.JceSecurity").getDeclaredField("isRestricted");
    field.setAccessible(true);
    field.set(null, java.lang.Boolean.FALSE);
} catch (ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException ex) {
    ex.printStackTrace(System.err);
}

还尝试通过添加以下插件来更改pom.xml

<plugins>
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
 <artifactId>maven-enforcer-plugin</artifactId>
 <version>1.1.1</version>
 <executions>
     <execution>
         <id>enforce</id>
            <configuration>
                <rules>
                  <evaluateBeanshell>
                     <condition>javax.crypto.Cipher.getMaxAllowedKeyLength("AES") > 128</condition>
                  </evaluateBeanshell>
             </rules>
         </configuration>
         <goals>
             <goal>enforce</goal>
         </goals>
      </execution>
 </executions>
</plugin>

我已确认策略jar的版本与我的计算机上的Java版本匹配。有没有办法配置maven使用这些罐子? (无需使用像Bouncy Castle这样的其他图书馆)谢谢。

1 个答案:

答案 0 :(得分:0)

下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files以获得无限强度版本并将其用于构建和运行时。