인프런 커뮤니티 질문&답변
gateway domain 변경
작성
·
447
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를 직접 넣어주는 방법이 존재하나요?
답변 1
0
안녕하세요, 이도원입니다.
질문하신 내용이 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에서 전달해 보실 수도 있을 것 같습니다.
감사합니다.





