Spring Security 3.0: как указать URL-адреса, к которым применяется пользовательский фильтр?
Я использую Spring Security 3.0 с JSP. Я создал RequireVerificationFilter, который перенаправляет непроверенных пользователей на страницу «Проверьте свою электронную почту».
Я добавил фильтр в стек фильтров безопасности Spring в последнем месте следующим образом:
Определение бина в моем app-config.xml:
<bean id="requireVerificationFilter" class="com.ebisent.web.RequireVerificationFilter" />
Фильтр добавлен в список весенних фильтров безопасности в моем файле security-config.xml:
<custom-filter ref="requireVerificationFilter" after="LAST" />
Фильтр работает, но он фильтрует свой собственный URL перенаправления. То есть фильтр перенаправляет непроверенных пользователей в / access / verify, но этот URL-адрес также перехватывается фильтром, который пытается перенаправить до бесконечности.
Я пытался использовать<filter-mapping>
тег для ограничения 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-адрес, разрешенный внутри самого фильтра. Это хорошо работает для меня, но если есть лучший / более "пружинящий" способ сделать это, я был бы рад услышать это.