인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

KiddingJust님의 프로필 이미지
KiddingJust

작성한 질문수

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

Users Microservice에서 Spring Cloud Config 연동 ➁

인증 관련하여 질문드립니다.

작성

·

318

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님의 프로필 이미지
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 설정해서 사용하시면 됩니다.

감사합니다. 

KiddingJust님의 프로필 이미지
KiddingJust
질문자

아 답변해주셔서 감사합니다!

gateway service의 application.yml에만 filter 를 등록해줘서, user service에서는 아무런 필터도 타지 않는 건가요??

강의 내용을 벗어난 질문일 수 있지만, 직접 user service를 실행할 때도 필터가 적용하게 하려면, user-service의 application.yml에 따로 설정을 해주어야하는 건지 궁금합니다. 

감사합니다. 

KiddingJust님의 프로필 이미지
KiddingJust

작성한 질문수

질문하기