2009-07-29 3 views
1

나는 스프링 보안에서 AuthenticationProcessingFilter를 오버라이드하려고하고있다.Spring의 AuthenticationProcessingFilter 오버라이드

오류 이름 와 콩을 만드는 'myPackage.security.SessionCleanerFilter # 0'

인해를

<security:http access-decision-manager-ref="accessDecisionManager" > 
     <security:intercept-url .../> 
     <security:form-login login-page='/signin/' authentication-failure-url="/signin/?login_error" default-target-url='/signin/success'/> 
     <security:anonymous/> 
     <security:logout/> 
     <security:remember-me/> 
</security:http> 

<bean class="myPackage.security.SessionCleanerFilter" > 
    <security:custom-filter position="FILTER_SECURITY_INTERCEPTOR" /> 
    <property name="defaultTargetUrl" value="/signin/success" /> 
    <property name="authenticationFailureUrl" value="/signin/?login_error" /> 
    <property name="allowSessionCreation" value="true" /> 
</bean> 

을하지만이 예외의 많은 실패 : 나는 XML에서 다음과 같은 설정을 수행 한 instatiation 속성의 부족. 나는 그들에게 불이행이되기를 바란다. 구성 방법을 알고 있습니까?

답변

1

그것은해야하지 : 동일한 설정되어 있기 때문에,

<security:http auto-config="false" access-decision-manager-ref="accessDecisionManager"> 

하고, 더 이상 <security:form-login> 태그가 필요합니다

<security:custom-filter position=“AUTHENTICATION_PROCESSING_FILTER”/> 
0

당신은 또한 자동 구성이 사용 불가능합니다 bean의 등록 정보.

+0

'자동 config'는 기본적으로 false입니다 도움이되기를 바랍니다. –

0

순전히 따라야 할 접근법은 사용자 지정 필터에서 실제로 수행하려는 작업에 따라 다릅니다.

비슷한 문제가 발생했을 때,이 게시물에서 몇 가지 제안을 한 번보세요. https://stackoverflow.com/a/12356510/686478.

security:form-login 내부의 AuthenticationProcessingFilter를위한 bean 정의를 생성하고, 따라서 콩이 이미 HTTP 공간 핸들러에 의해 정의되어 있기 때문에 (귀하의 경우가 2.x에 불렸다의 FORM_LOGIN_FILTER 또는 AUTHENTICATION_PROCESSING_FILTER) 같은 위치에 오류가 발생합니다 그것을-정의 재 . 참조 설명서의 Adding Your own filter 섹션을 참조하십시오.

쉬운 옵션은 auto-config를 false로 설정하고 <form-login>을 제거하고 미리 정의 된 위치에 인증 필터를 정의하는 것입니다. 이렇게하면 보안 설정의 유용성과 가독성이 느슨해 지므로 the dependencies of your AuthenticationProcessingFilter을 자신의 설정 (AuthenticationManager, filterProcessesUrl 등).

기존 인증 필터를 덮어 쓰지 않고 실제로는 사전/사후 처리를 수행하고 싶다면 또 다른 방법은 실제 필터 이전 또는 이후에 호출되는 속성 이전 또는 이후를 사용하여 사용자 정의 필터를 정의하는 것입니다 .

: 당신의 제목을 기반으로, 난 당신이 FilterSecurityInterceptor를위한 별칭입니다 AUTHENTICATION_PROCESSING_FILTER하지 FILTER_SECURITY_INTERCEPTOR를 사용하기위한 것입니다 가정.

나는이 오래된 게시물의 종류 알고 있지만 그 필요는 없습니다, 그래서 나는이 몇 :

관련 문제