경주장
[인증/인가 API] 예외 처리 및 요청 캐시 필터 본문
ExceptionTranslationFilter - 예외 처리 필터
- AuthenticationException : 인증 예외
- AuthenticationEntryPoint 호출 - 로그인 페이지 이동/ 401 오류 코드 전달 등
- 인증 예외가 발생하기 전의 요청 정보를 저장
- RequestCache - 사용자의 이전 요청 정보를 세션에 저장하고 이를 꺼내오는 캐시 메커니즘
- SavedRequest - 사용자가 요청했던 request 파라미터 값들, 헤더 값 등이 저장
- RequestCache - 사용자의 이전 요청 정보를 세션에 저장하고 이를 꺼내오는 캐시 메커니즘
- AccessDeniedExeption : 인가 예외
- AccessDeniedHandler에서 예외 처리 하도록 제공
http.exceptionHandling() - 예외 처리 기능 설정
http.exceptionHandling()
.authenticationEntryPoint(authenticationEntryPoint()) // 인증실패 시 처리
.accessDeniedHandler(accessDeniedHandler()) // 인증실패 시 처리
RequestCacheAwareFilter - 요청 캐시를 확인하는 필터
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest wrappedSavedRequest = this.requestCache.getMatchingRequest((HttpServletRequest)request, (HttpServletResponse)response);
chain.doFilter((ServletRequest)(wrappedSavedRequest != null ? wrappedSavedRequest : request), response);
}
스프링 시큐리티의 필터중 가장 가장 간단한 필터 같다..
requestCache를 매번 확인하여 있다면 requset를 이전에 요청 받은 요청 정보로 바꾸어 다음 필터를 호출한다.
'스프링 > 스프링 시큐리티' 카테고리의 다른 글
[스프링 시큐리티 주요 아키텍쳐 이해] DelegatingFilterProxy, FilterChainProxy (0) | 2022.02.07 |
---|---|
[Form 인증 API] CSRF, CsrfFilter (0) | 2022.02.07 |
[인가 API] 권한 설정 (0) | 2022.02.06 |
[인증 API] SessionManagementFilter, ConcurrentSessionFilter (0) | 2022.02.06 |
[인증 API] 세션 고정보호, 세션 생성 정책 (0) | 2022.02.06 |