inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 시큐리티 OAuth2

MAC 검증 기능 구현 - JwtAuthorizationMacFilter

강사님 로그인 요청시 궁금한 점이 있습니다.

292

hangs0908

작성한 질문수 10

0

POST /login으로 요청시

JwtAuthenticationFilter는 실행되지만

JwtAuthorizationMacFilter는 왜 실행되지 않는 이유가 궁금합니다.

 

FilterChainProxy에 additionalFilters 목록을 보게 되면, JwtAuthenticationFilter와 JwtAuthorizationFilter가 담겨있고 UsernamePasswordAuthenticationFilter앞에 있는것을 확인할 수 있는데, JwtAuthorizationMacFilter을 넘어가는 이유가 뭔지 궁금합니다

 


 

디버깅 중에 왜 안나왔는지 알게되었네요

JwtAuthenticationFilter는 인증 성공후에 doFilter 를 안넘겨서 그 이후 체인이 실행하지 않아 검증 필터가 실행되지 않았습니다.

 

혹시 체인을 안태운 이유가 가장 마지막 필터인 FilterSecurityInterceptor or AuthorizationFilter 에서 SecurityContextHolder.getContext().getAuthentication 에 null 체크 예외 발생 때문에 일부러 안넘기신건가요??

 

토큰 인증 필터 성공 이후에 체인 안넘기신 이유가 궁금합니다.

안넘기게 되면 컨트롤러단까지 요청이 안가서 index 페이지가 안나와서

java spring spring-boot oauth

답변 2

0

정수원

답변이 늦어 죄송합니다

우선 JwtAuthorizationMacFilter 는 chain.doFilter(request, response) 구문을 실행하고 있습니다.

코드의 맨 마지막 줄에 보시면 구현되어 있습니다.

혹시 소스 코드를 보여 주실 수 있을까요?

0

인프런 AI 인턴

안녕하세요 hangs0908 님, 인프런 AI 인턴이에요.

JwtAuthenticationFilter 와 JwtAuthorizationFilter가 FilterChainProxy의 additionalFilters 목록에 있음에도 불구하고 JwtAuthorizationFilter가 실행되지 않는 이유에 대해 궁금하신 것 같습니다.

일반적으로 Spring Security의 FilterChain은 요청을 처리할 때, 필터들을 순차적으로 실행하며 이전 필터가 다음 필터로 넘기는 역할을 합니다.

JwtAuthenticationFilter는 인증 성공 후에 doFilter를 호출하지 않아서 그 이후의 필터 체인이 실행되지 않아 JwtAuthorizationFilter까지 도달하지 못한 것으로 보입니다.

아마도 체인을 안 넘기신 이유는 JwtAuthenticationFilter에서 인증이 성공한 경우 SecurityContextHolder에 인증 정보를 저장하고 다음 처리를 스킵하여 추가적인 인증 필터를 거치지 않고 바로 컨트롤러로 넘어가게 하기 위함일 것입니다.

이 과정에서 일부러 체인을 건너뛴 것으로 보입니다.

따라서 JwtAuthenticationFilter에서 인증이 성공하고 나서 체인을 넘기지 않은 이유는, 컨트롤러로 요청을 전달하여 index 페이지가 올바르게 나올 수 있도록 하는 것일 것입니다.

정확한 이유에 대해서는 코드의 구현 및 개발자의 의도에 따라 다를 수 있으므로, 해당 프로젝트의 구현 상황을 확인하시는 것이 가장 정확한 답변을 얻으실 수 있을 것입니다. 감사합니다!

authorization-server 라이브러리 질문이 있습니다.

0

75

1

loadUser 중 Missing attribute 'preferred_username' in attributes 에러 발생

0

76

2

JWT 조회 에 대한 질문

0

70

1

password grant 방식 에러 응답

0

88

3

FormLoginConfigure에서 생성하는 필터

0

77

2

현업에서 springboot를 3.5.5 를 사용해서 공부중인데...

0

282

2

Jdbc 관련 강의 및 깃헙 문의

0

77

1

OAuth2AuthorizedClient 이해 및 활용 강의 내용 질문

0

208

1

UserInfo 엔드포인트 요청 실습

0

74

1

RFC 문서에서의 AccessToken 발급 방식 궁금한점

0

150

1

강의자료.zip 를 다운로드 받았는데 압축이 풀리지 않습니다. 확인 부탁드려요

0

139

2

OIDC SSO 관련 질문 입니다.

0

130

1

AuthenticationEntryPoint 강의 누락 문의

0

122

1

cors설정방법

0

115

1

jwt decoder 토큰 검증 시 질문

0

221

1

클라이언트에서 userinfo 엔드포인트 호출 시 질문

0

185

2

JOSE 구성요소의 api에 관한 질문

0

140

2

스프링 부트 3버전으로 따라가시는 분들 참고하세요

1

529

1

CustomOAuth2AuthenticationFilter 구현 중 질문

0

145

2

AuthenticationManager 생성시점

0

117

1

FormLogin과 Oauth2Client 둘 중 사용하는 시점

0

127

1

postman userinfo 엔드포인트 질문

0

135

2

강의 수강신청하고 듣기 전입니다 질문있습니다.

0

113

1

인증 코드를 통해 발급 받은 토큰의 관리

0

198

1