Spring Security - ExceptionTranslationFilter Spring Security 에서 인증/인가 예외 처리 필터 ExceptionTranslationFilter ExceptionTranslationFilter는 SecurityInterceptor와 밀접한 관계가 있다. ExceptionTranslationFilter가 SecurityInterceptor 이전에 존재해야한다. 이유 ? ExceptionTranslationFilter가 try-catch 블록으로 감싼뒤 SecurityInterceptor를 실행하는 구조이다. SecurityInterceptor가 인가처리를 하는 과정에서 발생하는 예외를 처리한다. SecurityInterceptor SecurityIntercept..
Spring Security - SessionManagementFilter Spring Security 에서 중요한 역할을 하는 필터 SessionManagementFilter Session 변조 공격 방지 기능 공격을 방지하는 방법 : 인증을 한뒤 세션을 변경하는것 서블릿 컨테이너 버전따라 다르게 사용한다. migrateSession (서블릿 3.0- 컨테이너 사용시 기본값) 인증이 됬을때 새로운 세션을 생성한뒤, 기존 세션의 attribute들을 복사해 온다. changeSessionId (서블릿 3.1+ 컨테이너 사용시 기본값) 유효하지 않은 세션으로 접근했을때 어디로 보낼것인지 URL을 설정하는 기능. 로그아웃 했을경우 세션을 만료시킨다. 유효하지 않은 세션이 접근했을때 어디로 보낼것인지 URL ..
Spring Security - AnonymousAuthenticationFilter Spring Security 에서 익명사용자에 대한 처리를하는 필터를 살펴보자. AnonymousAuthenticationFilter 인증을 하지않은 요청일 경우 SecurityContextHolder에 익명 Authentication객체를 넣어주는 역할을 한다. AnonymousConfigurer 기본으로 만들어서 사용할 익명 Authentication 객체를 설정할 수 있다. 기본값 pricial: anonymousUser authorities: ROLE_ANONYMOUS Null Object Pattern Spring Security 에서는 일종의 Null Object Pattern 을 사용한다. Null Obje..
Spring Security - SecurityContextHolderAwareRequestFilter Spring Security 에서 시큐리티 관련 서블릿 3 API 를 구현해주는 필터이다. 딱히 우리가 신경쓸 일은 없는 필터이다. SecurityContextHolderAwareRequestFilter Spring Security 에서 서블릿 3 스펙을 지원한다. 시큐리티 관련 메서드들을 스프링 시큐리티 기반으로 구현체를 연결해주는 역할을 한다. HttpServletRequest authenticate(); 인증이 된건지 아닌건지 판단 안되어있을경우 로그인 페이지로 이동 한다. HttpServletRequest login(); AuthenticationManager를 사용하여 인증을 처리하도록 한다...