• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

redirect시에 그 다음 필터를 거치지 않는 원리가 궁금합니다.

22.01.30 18:23 작성 조회수 326

0

redirect 할때는 usernameauthenticationfilter 다음 필터부터 거치지 않는 원리가 궁금합니다. 디버깅을 해보니 기존 요청과의 차이점을 잘 모르겠는데 그 다음 필터를 거치지 않는 이유를 모르겠습니다. 

또한 궁금한게 requestcacheawarefilter 에서는 redirect 하는게 아니라 세션에 캐쉬된 request로 요청을 바꿔서 그 다음 필터를 호출하는것이 맞나요?

 

미리 답변 감사드립니다.!

답변 2

·

답변을 작성해보세요.

0

loky13님의 프로필

loky13

2024.03.26

기억을 기반으로 작성하자면, 처음 인증되지 않은 사용자에게 anonymous를 부여하는데, 이때 사용자의 authentication이 필요하게 됩니다. 여러 필터를 거치며 사용자를 인증하게 되며 인증이되고나면 contextHolder 에 저장하게 됩니다.이 후 redirect 하게되면, contextHolder에 저장된 인증정보를 사용하여 필터를 거치기 때문에 해당 필터(usernameAuthenticationFilter)를 거치지 않는 것으로 보입니다.

0

redirect 한다는 의미가 정확하게 무엇인지 추가 설명 해 주시면 감사하겠습니다.

인증에 성공한 이후인지 인증에 실패한 이후인지...

UsernamePasswordAuthenticationFilter 다음 필터부터 거치지 않는다는 것도 좀 더 설명을 해주시면 감사하겠습니다.

그리고 RequestCacheAwareFilter 에서는 세션에 Request 객체가 캐싱되어 있다면 해당 캐싱된 Request 객체를 다음 필터로 전달합니다.

질문하신 내용이 맞습니다.