====== Spring Security Custom Filter ====== 스프링 시큐리티의 필터를 재정의 하거나 혹은 원하는 대로 추가할 수 있다. ====== 기본 필터 ====== ^Alias^Filter Class ^Namespace Element or Attribute^ |CHANNEL_FILTER |ChannelProcessingFilter |http/intercept-url@requires-channel| |CONCURRENT_SESSION_FILTER |ConcurrentSessionFilter |session-management/concurrency-control| |SECURITY_CONTEXT_FILTER |SecurityContextPersistenceFilter |http| |LOGOUT_FILTER |LogoutFilter |http/logout| |X509_FILTER |X509AuthenticationFilter |http/x509| |PRE_AUTH_FILTER |AstractPreAuthenticatedProcessingFilter Subclasses |N/A| |CAS_FILTER |CasAuthenticationFilter |N/A| |FORM_LOGIN_FILTER |UsernamePasswordAuthenticationFilter |http/form-login| |BASIC_AUTH_FILTER |BasicAuthenticationFilter |http/http-basic| |SERVLET_API_SUPPORT_FILTER |SecurityContextHolderAwareFilter |http/@servlet-api-provision| |REMEMBER_ME_FILTER |RememberMeAuthenticationFilter |http/remember-me| |ANONYMOUS_FILTER |AnonymousAuthenticationFilter |http/anonymous| |SESSION_MANAGEMENT_FILTER |SessionManagementFilter |session-management| |EXCEPTION_TRANSLATION_FILTER |ExceptionTranslationFilter |http| |FILTER_SECURITY_INTERCEPTOR |FilterSecurityInterceptor |http| |SWITCH_USER_FILTER |SwitchUserFilter |N/A| * ''FORM_LOGIN_FILTER''는 로그인 시도가 왔을 경우, 성공/실패와 무관하게 기본적으로는 그 뒤에 오는 필터를 실행하지 않고 리턴한다. 따라서 로그인과 관련된 것중 필히 시도해야 하는 것은 ''FORM_LOGIN_FILTER''에 대해 **before**로 지정해야 한다. ====== 재정의 하는 법 ====== 기존 필터를 상속하거나 [[http://docs.oracle.com/javaee/6/api/javax/servlet/Filter.html|Filter]]를 직접 구현하여 Bean 으로 생성한다. ''위치 Alias''에는 위 표에 나온 대문자 상수들을 지정한다. * 위치 지시자 * ''before''는 위치 Alias보다 앞에, * ''after''는 뒤에 * ''position''은 해당 위치에 있는 필터 대체 * 추가 위치 Alias * ''FIRST'' : 맨 앞 * ''LAST'' : 맨 뒤 * ''position''을 사용하는 경우에는 ''auto-config="false"''로 해서 모든 것을 개발자가 직접 설정 해줘야 한다.