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>

また、暗号化に必要な JCE ファイルを含む jdk 1.7 があります。

この問題を解決する方法についてのアイデアはありますか?

4

2 に答える 2

9

あなたの問題はあなたがJCEを持っていないということではありません。あなたがやる。ただし、構成から、TripleDESアルゴリズムを使用しているため、エラーが示すように、これにはJCEの「無制限の強度管轄ポリシーファイル」をインストールする必要があります。

これらのファイルは、Oracleのサイト(JDKをダウンロードしたのと同じページから)からダウンロードでき、「禁止された」国(イラン、北朝鮮など)からではないことを保証する必要があるため、わずかに異なるライセンス契約に基づいて配布されます。 )..。

Jasypt FAQでこの質問を参照してください: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 に答える