2013-05-28 1 views
1

저는 Spring3.1 및 hibernate4를 사용하여 프로젝트를 개발 중입니다.jasypt를 사용하여 등록 정보 파일에서 사용자 이름/비밀번호를 암호화 할 수 없습니다.

이제 사용자 이름, 데이터베이스의 암호와 같은 중요한 데이터를 속성 파일에서 암호화하고 싶습니다. (참고 http://www.jasypt.org/spring31.html)

1.Configuring 자리 :

<bean id="propertyConfigurer" class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer"> 
    <constructor-arg ref="configurationEncryptor" /> 
    <property name="locations"> 
     <list> 
      <value>/WEB-INF/classes/connection.properties</value> 
     </list> 
    </property> 
    <property name="ignoreUnresolvablePlaceholders" value="true"/> 
</bean> 

2.Configuration 암호기

<bean id="encryptorConfig" class="org.jasypt.encryption.pbe.config.SimplePBEConfig"> 
    <property name="algorithm" value="PBEWithMD5AndDES" /> 
    <property name="password" value="MASTERPASSWORD" /> 
</bean> 
    <bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor"> 
    <property name="config" ref="encryptorConfig" /> 
</bean> 

3.Database 연결

위한 여기

제가

다음 단계이다
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
    <property name="driverClassName" value="${data.driver}"/> 
    <property name="url" value="${data.url}"/> 
    <property name="username" value="${data.user}"/> 
    <property name="password" value="${data.password}"/> 
</bean> 
명령에 의해 jasypt 사용개

4.Generated 암호화 된 값 :

org.postgresql.util.PSQLException: FATAL: password authentication failed for user "ENC(VO0A3aXAu71CCgzGFa+nJO/7M/0b5MF2)" 
: 나는 응용 프로그램을 실행할 때

encrypt input="MY_DATABASE_PASSWORD" password="MASTERPASSWORD" algorithm="PBEWithMD5ANDDES" 

5.connection.properties 파일이

data.user=ENC(VO0A3aXAu71CCgzGFa+nJO/7M/0b5MF2) 
data.password=ENC(EogzgPllaXTDm7wq5kRp6uPmkWq6pmDV) 

포함, 난 여전히 같은 오류를 얻고있다

다음은 jacept와 Spring 애플리케이션을 통합하기 위해 포함시킨 추가 항아리입니다 :

commons-dbcp-1.1.jar 

commons-lang-2.1.jar 

commons-pool-1.2.jar 

icu4j-3.4.4.jar 

jasypt-1.9.0.jar 

jasypt-1.9.0-lite.jar 

jasypt-acegisecurity-1.9.0.jar 

jasypt-hibernate4-1.9.0.jar 

jasypt-spring3-1.9.0.jar 

jasypt-spring31-1.9.0.jar 

누락되었거나 호환성 문제가 있습니까?

답변

1

누락 된 jar 문제는 아닙니다. Jasypt에서 사용자 이름/암호를 해독 할 수 없습니다. 스프링 3.1에서는 다음 설정을 제안합니다.

<encryption:encryptable-property-placeholder encryptor="stringEnc" propertie-ref="dbProperties" ignore-unresolvable="true"/> 
<encryption:string-encryptor id="stringEnc" algorithm="PBEWithMD5AndDES" password="MASTERPASSWORD" /> 

<bean id="dbProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
<property name="location"> 
<value>/WEB-INF/classes/connection.properties</value> 
</property> 
</bean>