ExceptionTranslationFilter
- FilterSecurityIntercepterFilter 직전에 수행되는 필터가 ExceptionTranslationFilter 이다.
AuthenticationException
- 인증 예외처리가 일어나면 AuthenticationEntryPoint 호출하고 >> 로그인 페이지로 이동 >> 401 오류 코드를 전달함.
- 인증 예외가 발생하기 전 사용자가 보낸 요청정보를 저장
- RequestCashe - 사용자가 이전에 보낸 요청 정보를 세션에 저장하고 이를 꺼내 오는 캐시 메커니즘
- SaveRequest - 사용자가 요청했던 request 파라미터 값들, 그 당시의 헤더 값들 등이 저장됨.
- RequestCashe - 사용자가 이전에 보낸 요청 정보를 세션에 저장하고 이를 꺼내 오는 캐시 메커니즘
AccessDeniedException
- 사용자가 어떠한 자원에 접근하려고 할 때 알맞는 권한이 아닐 때 발생하는 예외처리
- 인가 예외 처리
- Access DeniedHandler에서 예외 처리하도록 제공함.
Flow
- Clent가 서버로 부터 요청을 함.
- 인증 예외처리 즉, 사용자 인증없이 소스에 접근을 하면 ExceptionTranslationFilter로 이동시키고, AuthenticationException을 처리함.
- ExceptionTranslationFilter에서 이전의 요청값을 저장 하고 다시 client를 로그인 페이지로 이동시킴
- 다시 한번더 사용자가 요청을 하고 성공을 하면 Authentication 객체를 만들고 이전의 요청값을 들고 와서 실행을 시킴.
- 인가 예외처리, 즉 사용자가 권한이 없는 소스에 접근하면 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 |