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에서 가져온 값이면서 암호화된것을 복호화 하면서 넣음.