1. pom.xml 디펜던시 추가

    <dependency>

        <groupId>org.jasypt</groupId>

        <artifactId>jasypt-spring3</artifactId>

        <version>1.9.2</version>

    </dependency>


2. 암호화 클래스 파일 만들어서 암호화된 문자 보기



package encrypt;


import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;


public class Encrypt {

public static void main(String[] args) {

   StandardPBEStringEncryptor pbeEnc = new StandardPBEStringEncryptor();

   pbeEnc.setAlgorithm("PBEWithMD5AndDES");

   pbeEnc.setPassword("jasyptPass");

   String title = pbeEnc.encrypt("hello world title");

   System.out.println(" title = " + title);

   System.out.println(" title = " + pbeEnc.decrypt(title));

}

}

hello world title 

이 암호화할 단어

3. properties 파일 저장
hello.title=ENC(ldtcJv+14/xmF3RGs+3xzTlCRKZuaKzQe+vRrj92umI=)

위에서 출력된 값으로 properties 항목에 값을 설정 
ENC로 묶어주어야 주입될때 복호화가 되어서 들어감에 주의

4. 콘텍스트 xml 편집

    <bean id="environmentVariablesConfiguration"
      class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
        <property name="algorithm" value="PBEWithMD5AndDES" />
        <property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD" />
    </bean>
  
    <bean id="configurationEncryptor"
      class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
        <property name="config" ref="environmentVariablesConfiguration" />
        <property name="password" value="jasyptPass" />
    </bean>
    
    <bean id="propertyConfigurer" class="org.jasypt.spring3.properties.EncryptablePropertyPlaceholderConfigurer">
        <constructor-arg ref="configurationEncryptor" />
        <property name="locations">
            <list>
                <value>classpath:/props/helloWorld.properties</value>
            </list>
        </property>
    </bean>
<bean id="helloworld" name="helloworldname" class="egovframework.guide.helloworld.HelloWorldServiceImpl" >
<property name="name"><value>egov2 framework</value></property>
<property name="title"><value>${hello.title}</value></property>
</bean>

HelloWorldServiceImpl 클래스에 
name과 title 이 주입되는데 
name은 직접입력된 값
title은 properties에서 가져온 값이면서 암호화된것을 복호화 하면서 넣음.



+ Recent posts