Spring Security 3.0: Wie kann ich URLs angeben, für die ein benutzerdefinierter Filter gilt?

Ich verwende Spring Security 3.0 mit JSPs. Ich habe einen RequireVerificationFilter erstellt, der nicht verifizierte Benutzer auf eine Seite zur Bestätigung Ihrer E-Mail-Adresse umleitet.

Ich habe den Filter wie folgt an letzter Stelle zum Sicherheitsfilterstapel für Federn hinzugefügt:

Bean Definition in meiner app-config.xml:

<bean id="requireVerificationFilter" class="com.ebisent.web.RequireVerificationFilter" />

Filter zur Liste der Spring-Sicherheitsfilter in meiner security-config.xml hinzugefügt:

<custom-filter ref="requireVerificationFilter" after="LAST" />

Der Filter funktioniert, filtert jedoch seine eigene Weiterleitungs-URL. Das heißt, der Filter leitet nicht überprüfte Benutzer zu / access / verify um, aber diese URL wird auch vom Filter erfasst, der versucht, die Weiterleitung ad infinitum durchzuführen.

Ich habe versucht, mit der<filter-mapping> tag, um die URLs einzuschränken, auf die dieser neue Filter angewendet wird, aber das scheint nicht so zu funktionieren, wie ich es mir vorgestellt habe. Hier ist der web.xml-Eintrag, den ich trotzdem hinzugefügt habe:

    <filter>
        <filter-name>requireVerificationFilter</filter-name>
        <filter-class>com.ebisent.web.RequireVerificationFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>requireVerificationFilter</filter-name>
        <url-pattern>/account/*</url-pattern>
    </filter-mapping>

Ich habe in der Sicherheitsdokumentation im Frühjahr "Eigene Filter hinzufügen" gelesen, aber keine Antwort gefunden.

Meine Frage lautet: Wie kann ich angeben, für welche URLs mein Filter gilt?

AKTUALISIEREN

Ich habe dies erreicht, indem ich die URL angegeben habe, die im Filter selbst zulässig ist. Das funktioniert gut für mich, aber wenn es einen besseren / "federnderen" Weg gibt, würde ich mich freuen, ihn zu hören.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage