Search
Duplicate
📝

[Spring Study] xx-2. JASYPT - 프로퍼티 암호화

상태
수정중
수업
Spring Study
주제
기본개념
4 more properties
참고

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
복사
테스트의 경우에도 키값이 필요하기 때문에. 값을 전달해서 받아야한다!