Hello, Freakin world!

[Spring Cloud Config] 대칭키로 구성 정보 암호화하기 - 2 본문

Spring Cloud/Config

[Spring Cloud Config] 대칭키로 구성 정보 암호화하기 - 2

johnna_endure 2021. 2. 17. 18:14

1편에서는 Spring Cloud Config에서 제공하는 방법을 이용해 구성정보를 암호화했습니다.

 

 

[Spring Cloud Config] 대칭키로 구성 정보 암호화하기 - 1

아래 예제는 Spring Cloud Config 카테고리의 이전 글들의 예제 구조를 따라갑니다. javachoi.tistory.com/390 [Spring Cloud Config] 1.컨피그 서버 만들기 대략적인 동작 방식 서비스 A의 소스를 그레이들이나..

javachoi.tistory.com

이제 구성 정보를 저장하는 저장소는 패스워드같은 민감한 정보를 암호화해서 저장합니다. 그리고 컨피그 서버는 민감한 정보를 암호화한 상태로 클라이언트에게 전달합니다.

 

이제 클라이언트는 암호화된 정보를 복호화하고 사용하는 일만 남았네요.

 

사실 따로 클라이언트에 추가해야할 코드는 없습니다. 클라이언트 서비스를 부트스트래핑하는 시점에 대칭키 암호만 ENCRYPT_KEY라는 환경 변수에 전달해주면 됩니다.

그리고 클라이언트 서비스에서 /password라는 엔드포인트를 통해서 암호화됐던 패스워드가 복호화됐는지 확인해보겠습니다.

 


ClientApplication.class

@SpringBootApplication
public class ClientApplication {

	public static void main(String[] args) {
		SpringApplication.run(ClientApplication.class, args);
	}

}

HelloRestController.class

@RestController
public class HelloRestController {

	@Autowired
	ServerConfig serverConfig;

	@GetMapping("/hello")
	public String hello() {
		return serverConfig.getValue();
	}

	@GetMapping("/password")
	public String password() {
		return serverConfig.getPassword();
	}

}

ServerConfig.class

@Component
public class ServerConfig {

	@Value("${msg:default}")
	private String value;

	@Value("${password:invalid}")
	private String password;

	public String getValue() {
		return value;
	}

	public String getPassword() {
		return password;
	}
}

 

이전 글들에서의 webclient 프로젝트의 코드에 @Value를 이용해 password 프로퍼티를 가져오는 코드가 추가됐습니다.


인텔리제이 Edit configurations... 옵션을 이용해 시작 시에 대칭키로 지정했던 값이 환경 변수로 추가될 수 있게 합시다.

 

Environment variables 에 값을 추가하세요.

 


이제 클라이언트 서버와 컨피그 서버를 띄우고 /password를 호출해 복호화된 hello가 나오면 성공입니다.

 

성공!


최종 코드는 아래에서 확인하실 수 있습니다.

 

johnna-endure/spring-cloud-config-exam

Contribute to johnna-endure/spring-cloud-config-exam development by creating an account on GitHub.

github.com

 

Comments