인프런 커뮤니티 질문&답변
인증 관련하여 질문드립니다.
작성
·
333
0
좋은 강의 올려주셔서 감사합니다.
정말 도움이 많이 되고 있습니다. ㅜㅜ
인증 부분에서 궁금한 점이 있는데요,
이전에 User Service의 WebSecurity.java에서 아래 코드를 통해 전체 경로에 대해
AuthenticationFilter를 거치도록 한 것 같은데, 바로 호출이 되어서요.
//인증이 된 상태에서만 통과시키도록.
http.authorizeRequests()
.antMatchers("/**")
.hasIpAddress("{source.ip}") //source ip
.and()
.addFilter(getAuthenticationFilter());
gateway를 통해서 호출하는 경우에는 health_check 에도 토큰이 필요한 것 같았는데,
서비스 직접 호출 시에는 토큰이 필요하지 않은 이유가 무엇인지 궁금합니다.
추가로,
actuator/** 에 대해 permitAll은 왜 따로 해주신건지도 궁금합니다.
permitAll 하지 않아도 호출 하는데는 문제 없는 것 같더라구요.
감사합니다.
답변 1
0
Dowon Lee
지식공유자
안녕하세요, 이도원입니다.
apigateway-service를 거치지 않고 직접 user-service를 실행할 때는 Beaer JWT 유효성 여부를 체크하지 않습니다. 제약 사항으로는 IP Address만 유효하면 접근 허가가 됩니다. 따라서 apigateway-service를 통해 JWT의 유효성을 체크할 수 있도록 Filter를 추가하였습니다.
actuator/**의 정보는 중요한 정보임으로 원칙적으로 security 설정에서 막아 놓는것이 필요합니다.
http.authorizeRequests().antMatchers("/**").authenticated().anyRequest().permitAll()
그러나, 강의에서 사용한 예제에서는 위와 동일한 이유로, user-service를 직접 요청하는 경우에는 IP Address 외에는 막지 않고 있습니다. 해당 설정을 액세스 허용하려면 위와 같이 permitAll 설정해서 사용하시면 됩니다.
감사합니다.






아 답변해주셔서 감사합니다!
gateway service의 application.yml에만 filter 를 등록해줘서, user service에서는 아무런 필터도 타지 않는 건가요??
강의 내용을 벗어난 질문일 수 있지만, 직접 user service를 실행할 때도 필터가 적용하게 하려면, user-service의 application.yml에 따로 설정을 해주어야하는 건지 궁금합니다.
감사합니다.