아래 내용은 실제로 적용 및 정상 작동을 확인하고 작성하였습니다.
같은 환경에서 테스트하신다면 동일한 결과를 예상합니다.
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
@Configuration
@EnableEncryptableProperties
public class JasyptConfig {
private static final String PASSWORD = "시스템 환경 변수 Key";
@Bean("jasyptStringEncryptor")
StringEncryptor stringEncryptor() {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
final String PASSWORD = System.getenv(PASSWORD);
config.setPassword(PASSWORD);
config.setAlgorithm("PBEWithMD5AndDES");
// 반복 해싱 횟수
config.setKeyObtentionIterations(1000);
config.setPoolSize(1);
// JVM 보안 프레임워크에 사전 등록된 공급자 명
config.setProviderName("SunJCE");
config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
config.setStringOutputType("base64");
encryptor.setConfig(config);
return encryptor;
}
}
System.getenv("시스템 환경 변수 Key");
spring.datasource.admin.password=ENC(3KJes1I8ioc59POyS/t6rzC+Ua4PzUCN)