본문 바로가기
마주쳤던 에러 해결 모음

[에러해결] 인프런 Spring Cloud MSA강의 127.0.0.1:8000/user-service/user 403에러

by 문자메일 2022. 5. 22.




https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4

 

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의

Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해

www.inflearn.com

 

문제 발생 : 위 인프런 Spring Cloud MSA 강의 따라하는 도중 user-service에서 로그인 기능 구현하는 부분에서 막히는 부분 발생함.

(POST / 127.0.0.1:8000/user-service/user API 호출 시 아래처럼 403 에러 발생)

 

해결 : 유레카 서비스 웹 페이지에서 강사님 서비스들 URI는 192.168.0.8 IP로 등록되어 있었고, 아래 코드 부분의

.hasIpAddress("192.168.0.8") 으로 등록하시고 잘 동작 하는 것 확인하였는데, 내가 개인적으로 실습할 때는 그냥 나의 로컬 IP 주소 적으면 되는 것으로 생각하고 127.0.0.1, 192.168.0.16, localhost 등 적고 프로그램 실행하니 403 권한 오류만 계속 return되어서 환장할 뻔 했다.

 

결국 지금 생각해보면 나의 현재 설정에서는 API Gateway가 등록한 user-service MSA 서버의 주소를 return 할 때 

http://host.docker.internal:57929/actuator/info 로 return 하였고, API Gateway로부터 return 받은 user-service의 IP를 인증 과정에서 통과시키리면 .hasIpAddress("host.docker.internal") 로 입력하여야 하는게 맞는것 처럼 보인다.

 

위 문제는 API Gateway로 다른 마이크로서비스들을 호출하는 과정에서 어떤 URI가 return되는지 이해/체크하지 못한 부분과, 권한/인증에 관하여 깊이있게 생각하지 못하였어서 해맸던 문제였던 것 같다.

 

 

// 권한 관련 설정 메서드
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
  //      http.authorizeRequests().antMatchers("/**").permitAll();
        http.authorizeRequests().antMatchers("/actuator/**").permitAll();
        System.out.println("http = " + http.authorizeRequests().toString());
        http.authorizeRequests().antMatchers("/**")
                .hasIpAddress("host.docker.internal") // 본인 IP
                //.hasIpAddress("127.0.0.1") // 본인 IP
                .and()
                .addFilter(getAuthenticationFilter());

        http.headers().frameOptions().disable();
    }

 

403 에러 발생

 

 

 

나의 유레카 웹 페이지에서는 IP 주소가 아니라 도커 주소? 가 보이고 있었음

 

user-service 누르면 URI에 숫자 ip 주소가 아니라 다른 docker 주소가 뜸

 

강사님 강의 화면에서는 docker 주소가 아니라 숫자 주소 뜨는 것 확인됨.

댓글