inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Spring Cloud Bus 테스트

안녕하세요! 질문있습니다.

686

ygh

작성한 질문수 19

0

안녕하세요! 좋은강의 감사드립니다 :)

강의보면서 한가지 의문사항이 생겨 질문 남깁니다.

지금 현재 제 local pc에서 postman을 통해

(POST) http://localhost:8888/user-service/users 와 같이 api gateway를 통해 user-service의 users 엔트포인트를 호출하게 되면 정상적으로 유저가 생성되는데

(POST) http://localhost:[user-service-port]/users 와 같이 직접 user-service로 endpoint를 호출할 때는 403 forbidden 에러가 발생합니다.

user-service의 WebSecurity 설정에서 /users 엔드포인트에 대한 접근 권한을 따로 허용하지 않았으니, 이는 당연하다고 생각됩니다. 하지만 이해가 가지않는 것은 api gateway를 통해 /user-service/users 와 같은 엔트포인트 호출을 하면 정상적인 결과를 받아 볼 수 있다는 것입니다.

일반적으로 생각해봤을때, api-gateway를 통한 (POST) /user-service/users 호출도 user-service의 security 설정에 의해 막혀야 되는 것 아닌가요?? 어쨰서 api-gateway를 경유하게되면 정상적인 응답을 받을 수 있는 것인지 궁금합니다.

security spring-boot architecture spring-cloud JPA msa Kafka

답변 2

0

Dowon Lee

안녕하세요, 이도원입니다.

IP Address를 확인하는 부분에서 등록된 IP 이외에 localhost, 127.0.0.1으로도 액세스 되지 않습니다. Spring Config Server에 등록된 IP로 사용하시면 되지 않을까 싶네요. 

감사합니다. 

0

Dowon Lee

안녕하세요, 이도원입니다. 

제가 사용한 WebSecurity의 내용은 다음과 같습니다. 

위 코드에서 보시는 것처럼, 모든 요청에 대해 IP address만 확인하고, 추가적인 제한은 두고 있지 않습니다. 대신 api-gateway에서는 발행된 JWT 토큰 정보의 유효성을 가지고 user-service로 넘길지를 판단하고 있습니다. api-gateway에서 정상적으로 user-service로 요청이 전달되는 것은 JWT의 유효성에 문제가 없다는 것으로 생각되며, user-service에서 직접 사용자 추가가 되지 않는 경우에는 말씀하셨던 것처럼 WebSecurity 설정을 확인해 봐야 정확한 답변을 드릴 수 있을 것 같습니다. 아래 질문에 답변 드린 내용과 같이 확인 부탁드리며, 가지고 계신 코드를 공유해 주시면 에러 찾는데 도움이 될 것 같습니다. 

edowon0623@gmail.com

감사합니다. 

0

ygh

문제를 찾은것 같은데요.

제가 postman을 통해 유저생성 api를 날리는 과정에서 http://localhost:[user-service-port]/users와 같이 localhost라고 host를 명시해서

http.authorizeRequests().antMatchers("/**")
                .hasIpAddress(env.getProperty("gateway.ip"))         // 현재 내 local private ip 192.168.0.188
                .and()
                .addFilter(getAuthenticationFilter());

위 설정의 hasIpAddress에서 걸러진 것으로 판단됩니다.

 http://192.168.0.188:[user-service-port]/users 와 같이 직접 ip주소를 지정하여 요청을 보내면 제대로 응답이 오는 것을 확인했습니다.

번거롭게 해드려 죄송합니다.

kafka 업데이트 강의 듣고 시포요

0

114

2

강의 교안

0

105

2

마이크로서비스간 통신 시, 인증 처리

0

116

2

api gateway 에서 인증 처리

0

76

1

섹션 19 질문드립니다

0

84

2

강의 자료 업데이트

0

105

2

부하분산 강의 섹션

0

66

1

강의자료는 어디에서?

0

98

2

강의 자료는 어디서 다운 받을 수 있나요?

0

131

2

전체 사용자 조회시 오류

0

65

1

혹시 pk 외 별도의 id 를 부여한 이유가 있을까요 ??

0

120

2

학습 방향

0

105

2

카프카 커넥터 사용 목적 문의

0

91

2

kafka 강의

0

118

2

서비스 디스커버리 종류

0

90

2

강의 자료에 대해서 궁금해요

0

125

2

GlobalFilter, LoggingFilter가 동작하지 않습니다.

0

96

2

Kafka Source Connect 버전 에러

0

95

2

소스커넥터는 사용안한 거 맞죠?

0

84

2

강의자료 업데이트 문의

0

99

2

강의에서 BCryptPasswordEncoder 에 역할(5-2)

0

64

1

강의 업데이트 계획이 궁금합니다.

0

120

2

MSA 애플리케이션에 Spring Web과 Spring Data JPA를 사용하는 것이 바람직한지 궁금합니다. (MSA 설계와 관련된 질문입니다)

0

168

2

어떤 것이 업데이트 된 건가요?

0

169

2