2017-01-05 9 views
0

私はスプリング3を使用し、セキュリティチェーンで一連のカスタムフィルタを実装しています。最初の位置の後に、すでに実装されている一連のフィルタを呼び出す必要があります。 2つのフィルターを同じ位置(「=」の後)にリストすると、その位置が既に使用中で、競合が発生しているというエラーが表示されてコンテキストがロードされません。春のセキュリティ3 - 最初のポストの後に複数のセキュリティで保護されたフィルタ

「最初」の位置の後に呼び出される一連のカスタムフィルタを実装するにはどうすればよいですか?

(私は、彼らはかなり詳述されているので、フィルターをリファクタリングしたくない)

答えて

2

紛争は、これら2つのフィルタの間にあるなら、あなたは複合フィルタを定義することができます

<bean id="customFilters" class="org.springframework.web.filter.CompositeFilter"> 
<property name="filters"> 
    <list> 
     <ref bean="customfilter1"/> 
     <ref bean="customfilter2"/> 
    </list> 
</property> 

追加しますそれはあなたのフィルターチェーンにこのように:

<security:http ...> 
<security:custom-filter after="FIRST" ref="customFilters" /> 
.... 
    </security:http> 
+0

ありがとう..まさに私が見ていたものg for ...私は、私のフィルタの1つにサブチェーンを作成し、FilterChainを実装して他のフィルタに渡してしまいました。しかし、あなたのソリューションはより良いです。 – Jeffrey

関連する問題