참고
JASYPT란?
NOTE
개발자가 암호화 작동 방식에 대한 깊은 지식 없이도 프로젝트에 기본 암호화 기능을 추가할 수 있도록 해준다!
implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5'
Groovy
복사
gradle에 추가
기본설정
NOTE
@Configuration
public class JasyptConfig {
@Value("${jasypt.encryptor.password}")
private String password;
@Bean(name = "jasyptEncryptorAES")
public StringEncryptor stringEncryptor(){
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
config.setPassword(password);
config.setAlgorithm("PBEWithMD5AndDES");
config.setKeyObtentionIterations("1000");
config.setPoolSize("1");
config.setProviderName("SunJCE");
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
config.setIvGeneratorClassName("org.jasypt.iv.NoIvGenerator");
config.setStringOutputType("base64");
encryptor.setConfig(config);
return encryptor;
}
}
Java
복사
password의 경우 외부에서 주입받는 형식으로 해줘야 한다!
jasypt:
encryptor:
bean: jasyptEncryptorAES
YAML
복사
암호화 빈 등록
패스워드 외부주입
NOTE
./gradlew build -Djasypt.encryptor.password=testkey
Groovy
복사
build의 경우 프로퍼티값으로 넘겨주는 방법
java -Djasypt.encryptor.password=testkey -jar your-app.jar
Groovy
복사
.jar 실행시킬때 프로퍼티로 넘겨주는 방법
tasks.named('test') {
useJUnitPlatform()
systemProperty 'jasypt.encryptor.password', System.getProperty("jasypt.encryptor.password")
}
Groovy
복사
테스트의 경우에도 키값이 필요하기 때문에. 값을 전달해서 받아야한다!