1. private 키는 git bash에서 cat 명령어를 통해 볼 수 있다. 출력되는 문자열 전체를 복사해놓는다.

 

2. ConfigServer 어플리케이션을 만들어주면 되는데 필수 의존성으로는 Spring Cloud Config Server와 Spring Security이다. 이후 main 함수가 존재하는 클래스에 @EnableConfigServer 어노테이션을 붙여주어 ConfigServer로서 동작하도록 설정해준다. 이 어노테이션이 없으면 없으면 properties에 대한 정보 가져올 수 없게 된다. 즉, 5번의 내용을 사용 못한다.

 

3. application.properties에서 변수 설정을 하여 Config Repositry를 연결해야 한다.

먼저 Config Server의 경우 포트 번호는 8888번을 사용한다.

이후 Config Server에 대한 설정 정보로는 아래와 같이 해준다.

spring.cloud.config.server.git.uri=github ssh주소

spring.cloud.config.server.git.ignoreLocalSshSettings=true (private-key옵션을 사용하도록 허용)
spring.cloud.config.server.git.private-key=비밀키

추가적으로 spring.cloud.config.server.git.search-paths=<git repo 안에 폴더명>, ...을 통해 git repository를 구조화시킬 수 있다. 즉, 탐색할 폴더를 추가해주는 설정이다. 이 때 기존에 설정 파일에 접근할 때와 같은 방식으로 폴더안에 있는 설정 파일 또한 접근할 수 있다.

 

혹은 local 환경의 git 저장소를 사용하면,

spring.cloud.config.server.git.uri =file:///C:/Users/emfor/Desktop/git_folder와 같이 해도 된다.

 

4. 외부에서 접속하지 못하도록 security 설정을 해준다. 

@Configuration
@EnableWebSecurity
public class SecurityConfig{

    @Bean
    public BCryptPasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }

    @Bean
    public SecurityFilterChain securityFilterChain(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("1234"))
                .roles("ADMIN")
                .build();
        return new InMemoryUserDetailsManager(user1);
    }
}

 

5. Config Client에서 Config Server에 접속해서 정보 가져오는 방법은 'http://ip:port/저장소이름/저장소환경'와 같이 접근하면 된다. 앞서 Config Repository 설정 파일을 이름-환경와 같이 지정했으므로 'http://ip:port/이름/환경'으로 접근하면 된다.

'Spring Boot > MSA' 카테고리의 다른 글

Spring Boot MSA Eureka Client설정  (0) 2024.04.26
Spring Boot MSA Eureka Server 설정  (0) 2024.04.26
Spring Boot MSA Config Client 설정  (0) 2024.04.26
Spring Boot MSA Config Repository 설정  (0) 2024.04.25
Spring Boot MSA  (0) 2024.04.25

+ Recent posts