2011-08-17 53 views
4

我有一個需要有多個PRE_AUTH Spring Security過濾器。除了在Spring Security 3.0的SAML擴展中配置爲PRE_AUTH的兩個過濾器之外,我還需要使用PRE_AUTH過濾器。現有的SAML配置如下。Spring Security中的多個預先驗證過濾器?

<security:http entry-point-ref="samlEntryPoint"> 
    <!-- snip intercepts --> 
    <security:custom-filter after="BASIC_AUTH_FILTER" ref="samlProcessingFilter"/> 
    <security:custom-filter before="PRE_AUTH_FILTER" ref="samlEntryPoint"/> 
    <security:custom-filter position="PRE_AUTH_FILTER" ref="metadataFilter"/> 
    <security:custom-filter after="LOGOUT_FILTER" ref="samlLogoutFilter"/> 
    <security:custom-filter before="LOGOUT_FILTER" ref="samlLogoutProcessingFilter"/> 
</security:http> 

附加PRE_AUTH過濾器將需要無論是現有的過濾器(即前應檢查:我認爲改變它這種驗證方法驗證用戶不應該給使用SAML機會

。下面的方法。

<!-- snip --> 
<security:custom-filter before="PRE_AUTH_FILTER" ref="newPreAuthFilter"/> 
<security:custom-filter position="PRE_AUTH_FILTER" ref="samlEntryPoint"/> 
<security:custom-filter after="PRE_AUTH_FILTER" ref="metadataFilter"/> 
<!-- snip --> 

將這項工作,或者需要更復雜的解決方案。

回答

0

聽起來像我t在Spring 3.1中是可能的。請參閱stackoverflow post。希望有所幫助。

+1

請提供更多詳細信息。 –

8

很古老的問題,但仍然相關。使用彈簧複合過濾器:

<security:custom-filter before="PRE_AUTH_FILTER" ref="compositeAuthFilter"/> 

<bean id="compositeAuthFilter" class="org.springframework.web.filter.CompositeFilter"> 
    <property name="filters"> 
     <list> 
      <ref bean="airlockAuthFilter"/> 
      <ref bean="samlEntryPoint"/> 
      <ref bean="metadataFilter"/> 
     </list> 
    </property> 
</bean> 
相關問題