2017-01-05 5 views
0

Ich verwende Feder 3 und implementiere eine Reihe von benutzerdefinierten Filtern in der Sicherheitskette. Ich muss eine Reihe von bereits implementierten Filtern nach der ersten Position aufrufen. Wenn ich versuche, zwei Filter an derselben Position aufzulisten (nach = "FIRST"), kann der Kontext nicht geladen werden, wobei der Fehler besagt, dass die Position bereits verwendet wird und ein Konflikt vorliegt.Spring Security 3 - Mehrere Sicherheitsfilter nach der ersten Position

Wie implementiere ich eine Reihe von benutzerdefinierten Filtern, die nach der "ERSTEN" Position aufgerufen werden sollen?

(Ich möchte nicht der Filter Refactoring, weil sie ziemlich detailliert sind)

Antwort

2

Wenn der Konflikt zwischen diesen beiden Filter ist, dann können Sie ein Composite-Filter definieren:

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

hinzufügen es zu Ihrer Filterkette wie folgt:

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

Vielen Dank ... Genau was ich sah g für ... Ich habe schließlich eine Unterkette in einem meiner Filter erstellt, FilterChain implementiert und an die anderen Filter übergeben, und erst nachdem die anderen Filter beendet waren, habe ich die Hauptfilterkette weiterentwickelt. Ihre Lösung ist jedoch besser. – Jeffrey

Verwandte Themen