ExceptionTranslationFilter

ExceptionTranslationFilter

 

  • FilterSecurityIntercepterFilter 직전에 수행되는 필터가 ExceptionTranslationFilter 이다. 

 


AuthenticationException

 

  • 인증 예외처리가 일어나면 AuthenticationEntryPoint 호출하고 >> 로그인 페이지로 이동 >> 401 오류 코드를 전달함. 
  • 인증 예외가 발생하기 전 사용자가 보낸 요청정보를 저장
    • RequestCashe - 사용자가 이전에 보낸 요청 정보를 세션에 저장하고 이를 꺼내 오는 캐시 메커니즘
      • SaveRequest - 사용자가 요청했던 request 파라미터 값들, 그 당시의 헤더 값들 등이 저장됨. 

AccessDeniedException

 

  • 사용자가 어떠한 자원에 접근하려고 할 때 알맞는 권한이 아닐 때 발생하는 예외처리
  • 인가 예외 처리
    • Access DeniedHandler에서 예외 처리하도록 제공함.

Flow 

 

 

  1. Clent가 서버로 부터 요청을 함. 
  2. 인증 예외처리 즉, 사용자 인증없이 소스에 접근을 하면 ExceptionTranslationFilter로 이동시키고, AuthenticationException을 처리함.
  3. ExceptionTranslationFilter에서 이전의 요청값을 저장 하고 다시 client를 로그인 페이지로 이동시킴
  4. 다시 한번더 사용자가 요청을 하고 성공을 하면 Authentication 객체를 만들고 이전의 요청값을 들고 와서 실행을 시킴.
  5. 인가 예외처리, 즉 사용자가 권한이 없는 소스에 접근하면 ExceptionTranslationFilter로 이동 시키고 AccessDeniedException을 일으킴

'Backend > Security' 카테고리의 다른 글

DelegatingFilterProxy, FilterChainProxy  (0) 2023.01.18
CSRF(사이트 간 요청 위조)  (0) 2023.01.09
권한 설정 및 표현식  (0) 2023.01.09
SessionManagementFilter, ConcurrentSessionFilter  (0) 2023.01.03
동시 세션 제어  (0) 2023.01.03