4

尝试使用 Maven 安装模块时,会抛出以下错误:

org.jasypt.exceptions.EncryptionOperationNotPossibleException:
Encryption raised an exception.
A possible cause is you are using strong encryption algorithms and you have not 
installed the Java Cryptography Extension (JCE) Unlimited Strength 
Jurisdiction Policy Files in this Java Virtual Machine

应用程序属性编码如下:

app.check.url=ENC(sCO3322RNYdt3wPfO04GoaN9PijwJzUcn9rb4ggHymA\=)

我的弹簧配置如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:p="http://www.springframework.org/schema/p"
   xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
                       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="placeholderConfig" class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer">
    <constructor-arg ref="configurationEncryptor"/>
    <property name="ignoreResourceNotFound">
        <value>true</value>
    </property>
    <property name="ignoreUnresolvablePlaceholders">
        <value>false</value>
    </property>
    <property name="locations">
        <list>
            <!-- These always come from the file system in ./conf/appCtx -->
            <value>file:../application.properties</value>
        </list>
    </property>
    <property name="systemPropertiesModeName">
        <value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
    </property>
</bean>
<bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
    <property name="config" ref="environmentVariablesConfiguration"/>
</bean>
<bean id="environmentVariablesConfiguration"
      class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
    <property name="algorithm" value="PBEWithMD5AndTripleDES"/>
    <property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD"/>
</bean>

我有 jdk 1.7,它确实有加密所需的 JCE 文件。

关于如何解决这个问题的任何想法?

4

2 回答 2

9

您的问题不在于您没有 JCE。你做。但是根据您的配置,您使用的是 TripleDES 算法,这需要安装 JCE“无限强度管辖策略文件”,如错误所示。

这些文件可以从 Oracle 的站点下载(从您下载 JDK 的同一页面)并根据略有不同的许可协议分发,因为您必须确保您不是来自“禁止”国家(伊朗、朝鲜等) )...

请参阅 Jasypt 常见问题解答中的此问题:http ://www.jasypt.org/faq.html#no-unlimited-strength

于 2012-11-06T09:19:11.757 回答
5

你没有安装 jce,默认情况下存在。lib\security但它没有被访问或使用。请下载 jce 文件并覆盖现有文件。看看你的错误本身you have not installed the Java Cryptography Extension (JCE)

  1. 请点击此链接并解决您的错误。[或]
    2. org.jasypt.exceptions.EncryptionOperationNotPossibleException
于 2012-11-06T04:19:12.153 回答