FiltersNameTagsChannerProcessingFilter0WebAsyncManagerIntegrationFilter1SecurityContextPersistenceFilter2HeaderWriterFilter3CsrfFilter4LogoutFilter5UsernamePasswordAuthenticationFilter6DefaultLoginPageGeneratingFilter7DefaultLogoutPageGeneratingFilter8RequestCacheAwareFilter9SecurityContextHolderAwareRequestFilter10RemeberMeAuthenticationFilter11AnonymousAuthenticationFilter12SessionManagementFilterExceptionTranslationFilter13ExceptionTranslationFilter14FilterSecurityInterceptor15ArchitectureSpring Security's Servlet support is based on Servlet Filters, so it is helpful to look at the role of Filter s generally first. The picture below shows the typical layering of the handlers for a single HTTP request.https://docs.spring.io/spring-security/reference/servlet/architecture.html#servlet-security-filters주요 Security Filter필터이름설명ChannelProcessingFilter웹 요청이 어떤 프로토콜로 (http 또는 https) 전달되어야 하는지 처리 SecurityContextPersistenceFilterSecurityContextRepository를 통해 SecurityContext를 Load/Save 처리LogoutFilter로그아웃 URL로 요청을 감시하여 매칭되는 요청이 있으면 해당 사용자를 로그아웃 시킴UsernamePasswordAuthenticationFilterID/비밀번호 기반 Form 인증 요청 URL(기본값: /login) 을 감시하여 사용자를 인증함DefaultLoginPageGeneratingFilter로그인을 수행하는데 필요한 HTML을 생성함RequestCacheAwareFilter로그인 성공 이후 인증 요청에 의해 가로채어진 사용자의 원래 요청으로 이동하기 위해 사용됨SecurityContextHolderAwareRequestFilter서블릿 3 API 지원을 위해 HttpServletRequest를 HttpServletRequestWrapper 하위 클래스로 감쌈RememberMeAuthenticationFilter요청의 일부로 remeber-me 쿠키 제공 여부를 확인하고, 쿠키가 있으면 사용자 인증을 시도함AnonymousAuthenticationFilter해당 인증 필터에 도달할때까지 사용자가 아직 인증되지 않았다면, 익명 사용자로 처리하도록 함ExceptionTranslationFilter요청을 처리하는 도중 발생할 수 있는 예외에 대한 라우팅과 위임을 처리함FilterSecurityInterceptor접근 권한 확인을 위해 요청을 AccessDecisionManager로 위임