-
Config Server 설정스프링/스프링 클라우드 MSA 2024. 8. 4. 17:20
지난 포스팅에서 Config Repository를 구축했는데, 여기서 데이터를 받아서 각각의 스프링 서버로 보낼 수 있도록 도와주는 Spring Config Server를 설정해볼 것이다.
spring 초기 세팅을 할 때 Spring Cloud Config의 Config Server와 Spring Security에 대한 의존성은 필수로 추가해야 한다. 이후의 의존성에 대한 세팅은 자유이다.
필수 의존성 - Config Server, Spring Security
프로젝트 설정 완료 시 가장 먼저 main 클래스에 @EnableConfigServer 어노테이션을 붙여준다. 이 어노테이션을 통해서 ConfigServer로 동작이 가능해진다.
application.properties에서 config server 관련 설정을 해주는데, 보통 config 서버는 9000으로 동작하기에 server.port는 9000으로 지정해줬다. 아래에는 깃허브의 주소, 설정, 접근을 위한 private key를 지정해주었다.
(properties 파일은 줄바꿈을 인식 못하기에 \n\으로 줄바꿈을 해준다.)
@Configuration @EnableWebSecurity public class SecurityConfig { @Bean public BCryptPasswordEncoder bCryptPasswordEncoder() { return new BCryptPasswordEncoder(); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .csrf((auth) -> auth.disable()); http .authorizeHttpRequests((auth) -> auth.anyRequest().authenticated()); http .httpBasic(Customizer.withDefaults()); return http.build(); } @Bean public UserDetailsService userDetailsService() { UserDetails user1 = User.builder() .username("admin") .password(bCryptPasswordEncoder().encode("password")) .roles("ADMIN") .build(); return new InMemoryUserDetailsManager(user1); // 간단하게 하기 위해서 DB에 연결하지 않고 인메모리에 저장 } }
스프링 클라우드는 보안이 중요하기 때문에 security를 무조건 설정해줘야 한다. 위에 처럼 Security Config를 만들어서 스프링 빈으로 등록해준다.
이전에 Config 깃허브 Repository에 ms1-dev.properties라는 파일을 만들었는데, 이름을 그냥 지정한 것이 아니라 정해진 규칙에 따라 지정한 것이었다.
이름-환경.properties와 이름-환경.yml 파일에 있는 정보에 접근하기 위해 /이름/환경이라는 엔드포인트로 요청을 보내면 데이터를 받아올 수 있다.
localhost:9000/ms1/dev에 접근했더니, 관련 정보가 나오는 것을 확인할 수 있다.
지금은 source에 server.port밖에 없지만, Config Repository 파일에 더 많이 추가하면 source에 다른 요소들이 추가된다.
'스프링 > 스프링 클라우드 MSA' 카테고리의 다른 글
Eureka Client 등록 설정 (0) 2024.08.05 Eureka 서버 구축 (0) 2024.08.05 Config 클라이언트 구축 (0) 2024.08.04 Config 깃허브 Repository 구축 (0) 2024.08.04 스프링 클라우드 MSA (0) 2024.08.04