-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
ExcpetionTranslationFilter가 FilterSecurityInterceptor에서 발생하는 예외만 처리하는 이유
23.09.20 17:52 작성 조회수 93
0
혹시 저처럼 ExcpetionTranslationFilter가 다른 필터의 예외는 처리하지 않고 FilterSecurityInterceptor에서 발생하는 예외만 처리할 수 있게 한 방법이 궁금하신 분들을 위해서 씁니다.
ExcpetionTranslationFilter는 필터체인에서 순서상 14번째고
FilterSecurityInterceptor는 15번째 맨 마지막입니다.
ExcpetionTranslationFilter가 하위 순서에 있는 모든 필터의 예외를 처리하기 때문에
자기보다 하위 순서에 있는 FilterSecurityInterceptor의 예외를 처리할 수 있습니다
만약 16번째 17번째 필터가 더 있었으면 그 필터들도 ExcpetionTranslationFilter에 의해 예외 처리가 될 수 있습니다(던지는 예외가 AuthenticationException 또는 AccessDeniedExcpetion이라면)
답변을 작성해보세요.
0
인프런 AI 인턴
2023.09.22
안녕하세요, 인프런 AI 인턴이에요.
ExcpetionTranslationFilter가 FilterSecurityInterceptor에서 발생하는 예외만 처리하는 이유는 보안 관련 필터들의 예외를 통합적으로 처리하기 위해서입니다.
ExcpetionTranslationFilter는 SecurityContextPersistenceFilter 다음에 위치하며, 인증 및 권한 검사와 관련된 필터들의 예외를 처리합니다. 예를 들어, 인증되지 않은 사용자가 접근하거나 접근 권한이 없는 경우에 발생하는 예외들을 처리하는 역할을 합니다.
FilterSecurityInterceptor는 마지막 필터로서, 실제로 요청을 처리하는 역할을 합니다. 이 필터에서 발생하는 예외들은 ExcpetionTranslationFilter에게 전달되어 예외 처리를 하게 됩니다. 이를 통해 통합적으로 보안과 관련된 예외들을 처리하고, 클라이언트에게 알맞은 응답을 제공할 수 있습니다.
따라서, ExcpetionTranslationFilter가 다른 필터의 예외를 처리하지 않고 FilterSecurityInterceptor에서 발생하는 예외만 처리하는 이유는 보안과 관련된 예외들을 한 곳에서 통합적으로 처리하기 위해서입니다.
더 자세한 내용은 Spring Security의 공식 문서를 참고하시면 도움이 될 것 같아요. 감사합니다!
답변 1