강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

kkh님의 프로필 이미지
kkh

작성한 질문수

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

Kafka를 활용한 데이터 동기화 테스트 ①

gateway domain 변경

작성

·

450

0

gatway에서 실제 msa real 서버에 요청을 보낼 때 

위와 같이 host.docker.internal로 변경되어

http
                .authorizeRequests().antMatchers("/**")
                .hasIpAddress("127.0.0.1")
                .and()
                .addFilter(authenticationFilter());

user-service의 spring security 코드가 위와 같을 때 hasIpAddress로 인해서 403 error가 나오는걸 확인하였습니다.

혹시  gateway 프로젝트에서 domain주소를 127.0.0.1과 같이 실제 ip address를 직접 넣어주는 방법이 존재하나요?

퀴즈

66%나 틀려요. 한번 도전해보세요!

Order 서비스와 Catalog 서비스 간에 Kafka를 사용하여 주문 수량 정보를 동기화하는 주된 목적은 무엇일까요?

각 서비스의 독립 데이터베이스 성능을 향상시키기 위해

사용자 인증 정보를 Catalog 서비스로 안전하게 전송하기 위해

주문 발생 시 Catalog 서비스의 재고 수량을 실시간에 가깝게 업데이트하기 위해

Order 서비스와 Catalog 서비스 간의 직접적인 RESTful API 호출을 완전히 대체하기 위해

답변 1

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

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

질문하신 내용이 Spring Seucirty의 hasIpAddress() 메소드에서 Real IP Address를 설정하는 것을 말씀하시는 건가요? 아니면 도메인명을 설정을 하는 것을 말씀하시는 건가요? 첫번째라면, 가능합니다. 만약 두번째라면 도메인명을 그대로 사용하시는 것은 안되고, WebSecurityExpressionRoot 클래스와 DefaultWebSecurityExpressionHandler클래스를  확장해서 구현하신 다음, 제어해 보실 수 있습니다. 아래 사이트를 참고해 보시기 바랍니다. hasIpAddress() 메소드의 역할처럼 해당 Handler에서 사용자 요청 정보 중 도메인 정보를 파악하여, 인증허가를 처리해 주시면 됩니다. 

https://stackoverflow.com/questions/16104172/spring-security-authenticate-not-by-ip-but-by-domain-subdomain

https://stackoverflow.com/questions/16284775/can-i-configure-spring-security-to-prompt-for-domain-name-along-with-user-name

위와 같은 방법 이외에, 사용하는 도메인명에 대한 IP address를 얻으셔서 처리해 주시면 될 것 같습니다. 해당 값을 프로젝트 시작 시 동적으로 입력받아 Spring Configuration에서 전달해 보실 수도 있을 것 같습니다.

감사합니다. 

kkh님의 프로필 이미지
kkh

작성한 질문수

질문하기