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