我正在使用Spring Security 3.0和JSP。我創建了一個RequireVerificationFilter,將未驗證的用戶重定向到「驗證您的電子郵件」頁面。Spring Security 3.0:如何指定應用自定義過濾器的URL?
我加了過濾器彈簧安全過濾器堆棧中最後的地方,像這樣:
在我的應用程序-config.xml中bean定義:
<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?
UPDATE:
我通過指定網址,讓過濾器本身中得到了這個工作。這對我來說工作得很好,但如果有更好的/更「靈活」的方式來做到這一點,我會很高興聽到它。
謝謝!我在我的安全配置中攔截了url標記,但我不知道你可以在那裏指定過濾器。 – outis 2010-10-18 16:21:44
但[Spring Security Reference Documentation](http://static.springsource.org/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#nsa-intercept-url-parents)表示: 'filters'屬性「只能取值」none「」。 – btpka3 2013-07-10 02:55:36