반응형
웹어플리케이션을 개발하다보면 DB정보와 같은 보안이 필요한 설정을 yaml 파일에 설정하게 되는데요 이부분을 암호화 하는 방법을 알아보겠습니다
우선 아래와 같이 의존성 추가를 해줍니다
dependencies {
implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5'
}
그리고 난후에 아래처럼 Jasypt Bean을 생성해줍니다
@Configuration
public class JasyptConfig {
@Bean("jasyptStringEncryptor")
public StringEncryptor stringEncryptor() {
PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
SimpleStringPBEConfig config = new SimpleStringPBEConfig();
config.setPassword("testpassword");
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;
}
}
password에 들어가는 값은 암복호화키로 사용되므로 암호화를 위해서 환경변수 설정등으로 처리할수 있습니다
그런다음 Application 클래스에 @EnableEncryptableProperties를 추가하면됩니다
@EnableEncryptableProperties
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
https://www.devglan.com/online-tools/jasypt-online-encryption-decryption
Programming Blog Article Feeds as per your Interest | DevGlan
Best programming article feeds as per your Interest on different technologies. Subscribe to any technology and explore the best articles from around the web.
www.devglan.com
위 사이트에서 암복호화 값을 미리 받아볼수 있습니다. 암호화한 값을 yaml 파일에 설정할때에는 아래와 같이 ENC()로 감싸서 설정해주시면 마무리됩니다.
spring:
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: ENC(tJBwD6b1XiMlHJy0swIdcdJyfZ2YUlhWtR+44ddzAZXbMMamub/dtOjvo/D16IVERaXyG3kYHUXi4n3+GoiSf+HF+gSCDCcqHzie1ohGUgZHjAH7M+vr9Ae+HSG0KWLtlYOF8bZYILY=)
username: ENC(XFmSic+f80Qw67Uun2L668evPJEDDlfh)
password: ENC(xIq6j0wRyOq7B3DKo97Eji9LnYOCpIOE)
반응형
'Spring' 카테고리의 다른 글
[Spring] Jasypt 사용시 @DataJpaTest 에러 (0) | 2023.02.24 |
---|---|
[Spring] mapstruct를 이용한 DTO <-> Entity 변환 (0) | 2023.02.22 |
[Spring JPA] 복합키 적용하는 방법 (0) | 2023.02.19 |
[Spring JPA] 다건의 데이터 삭제시 성능 개선 (0) | 2023.02.19 |
[Spring] DI 방법과 생성자 주입을 사용해야 하는 이유 (0) | 2023.02.15 |
댓글