티스토리 뷰

반응형

 



 

 

SpringBoot

 

 

 

설정파일에 DB 정보와 Mail 발신인 정보가 그대로 노출될 경우 

보안에 취약해질 수 있어

해당 정보를 암호화해서 넣어주거나 설정파일을 외부에 빼서 따로 관리해줘야 한다.

 

Spring에는 Jasypt 라는 라이브러리로 암호화 시켜서 설정파일을 관리할 수 있다.

 

 

Jasypt 라이브러리 등록

implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5'

 

 

 

암호화 방식 및 키값을 설정하는 빈을 생성.

@Configuration
public class ApplicationConfig {

	@Bean(name="jasyptStringEncryptor")
	public StringEncryptor stringEncryptor() {
		String key = "key";
		PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
		SimpleStringPBEConfig config = new SimpleStringPBEConfig();
		
		config.setPassword(key);
		config.setAlgorithm("PBEWithMD5AndDES");
		config.setKeyObtentionIterations(1000);
		config.setPoolSize(1);
		config.setProviderName("SunJCE");
		config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
		config.setStringOutputType("base64");
		
		encryptor.setConfig(config);
		return encryptor;
	}
}

 

 

 

 

이제 암호화 할 값들을 테스트 돌려서 값을 추출해온다.

@SpringBootTest
public class JaysptconfigTest {
	
	@Test
	void jasypt() {
		String url = "jdbc:oracle:thin:@127.0.0.1:1521/db";
		String username = "tiger";
		String password = "tiger";	
		String mailid = "sample@sample.co.kr";
		String mailpwd = "sample";
		
		System.out.println(jasyptEnc(url));
		System.out.println(jasyptEnc(username));
		System.out.println(jasyptEnc(password));
		System.out.println(jasyptEnc(mailid));
		System.out.println(jasyptEnc(mailpwd));
	}
    
    public String jasyptEnc(String VALUE) {
		String key = "key";
		PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
		SimpleStringPBEConfig config = new SimpleStringPBEConfig();
		
		config.setPassword(key);
		config.setAlgorithm("PBEWithMD5AndDES");
		config.setKeyObtentionIterations(1000);
		config.setPoolSize(1);
		config.setProviderName("SunJCE");
		config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
		config.setStringOutputType("base64");
		
		encryptor.setConfig(config);
		return encryptor.encrypt(VALUE);
	}

}

 

 

 

 

나온값들을 설정값에 넣어준다.

  datasource:
    driver-class-name: oracle.jdbc.OracleDriver
    jdbc-url : ENC(....)
    username: ENC(....)
    password: ENC(....)
    
   mail:
    host: mail.google.com
    port: 25
    username: ENC(....) 
    password: ENC(....)

 

 

 

 

설정환경이 정상작동하는지 확인하면 된다.

 

 

 

 



 

 

 

 

 

반응형
댓글
반응형
최근에 올라온 글
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Total
Today
Yesterday