Spring Security 3.0: Как указать URL-адреса, к которым применяется настраиваемый фильтр?

Я использую Spring Security 3.0 с JSP. Я создал RequireVerificationFilter, который перенаправляет непроверенных пользователей на страницу «Подтвердите свой адрес электронной почты».

Я добавил фильтр в стек весенних фильтров безопасности в последнем месте следующим образом:

Определение компонента в моем app-config.xml:

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

Фильтр добавлен в список весенних фильтров безопасности в моем security-config.xml:

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

Фильтр работает, но фильтрует собственный URL-адрес перенаправления. То есть фильтр перенаправляет непроверенных пользователей на / access / verify, но этот URL также перехватывается фильтром, который пытается выполнить перенаправление до бесконечности.

Я попытался использовать тег чтобы ограничить URL-адреса, к которым применяется этот новый фильтр, но, похоже, это не работает так, как я думал. Вот запись web.xml, которую я все равно добавил:

    <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>

Я прочитал «Добавление собственных фильтров» в весенней документации по безопасности, но не нашел ответа.

Мой вопрос: как я могу указать, какие URL-адреса мой фильтр применяется к?

ОБНОВЛЕНИЕ:

Я получил эту работу, указав разрешенный URL-адрес в самом фильтре. Это отлично работает для меня, но если есть лучший / более «упругий» способ сделать это, я был бы рад его услышать.

6
задан BalusC 13 January 2011 в 13:35
поделиться