提供JCE策略而无需修补JRE

时间:2014-08-04 12:18:43

标签: java security jce build-server

在我的项目中,我遇到了一些加密问题,由using "JCE Unlimited Strength Jurisdiction Policy Files"修复。在本地机器上,我刚刚替换了jre/lib/security目录中的一些JAR。但是,我还需要我的项目在持续集成构建服务器上构建(确切地说,运行测试)(在我的情况下是Teamcity,但我认为它不是很重要),这意味着在JRE中修补jar每个构建代理的目录,根本不是一个好的选择。

有没有办法在不修补JRE的情况下指定这些JCE策略?

2 个答案:

答案 0 :(得分:1)

根据Java Cryptography Architecture (JCA) Reference Guide下的How to Make Applications "Exempt" from Cryptographic Restrictions,您可以捆绑一个策略文件,说明您的应用程序的JAR的免除项,但是必须对JAR进行签名,甚至不确定Oracle的默认加密提供程序是否支持这样:

  

(注意:SunJCE提供商不提供ExemptionMechanismSpi类的实现。)

毋庸置疑,我还没有测试过这种方式...;)这看起来比替换两个文件更复杂。我总是在所有JVM上安装管辖权策略文件,但是我使用Debian Alternatives System来自动替换JDK提供的文件。这使得升级更加痛苦。

答案 1 :(得分:0)

好的,我实际上可以使用java反射绕过策略:How to avoid installing "Unlimited Strength" JCE policy files when deploying an application?

看起来像一个肮脏的黑客,但确实有效,不需要任何许可,签名和所有这些。