사용자 도구

사이트 도구


springframework:security:customfilter

Spring Security Custom Filter

스프링 시큐리티의 필터를 재정의 하거나 혹은 원하는 대로 추가할 수 있다.

기본 필터

AliasFilter 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로 지정해야 한다.

재정의 하는 법

기존 필터를 상속하거나 Filter를 직접 구현하여 Bean 으로 생성한다. 위치 Alias에는 위 표에 나온 대문자 상수들을 지정한다.

<http ...>
  <custom-filter ref="생성한필터Bean" 위치지시자="위치Alias" />
</http>
  • 위치 지시자
    • before는 위치 Alias보다 앞에,
    • after는 뒤에
    • position은 해당 위치에 있는 필터 대체
  • 추가 위치 Alias
    • FIRST : 맨 앞
    • LAST : 맨 뒤
  • position을 사용하는 경우에는 auto-config=“false”로 해서 모든 것을 개발자가 직접 설정 해줘야 한다.
springframework/security/customfilter.txt · 마지막으로 수정됨: 2013/01/28 16:11 저자 kwon37xi