2010-01-20 69 views
1

我正在使用spring-security和struts 2.我們的大多數頁面都有不受保護的內容與一些受保護的內容(用戶控件)混合,所以它是而不是就像你去某個頁面的例子,spring-security會攔截所有的東西。相反,我希望能夠通過按任意頁面上的登錄按鈕訪問登錄表單。一旦你成功認證你應該被重定向到原始頁面。在未受保護的URL登錄失敗後記住原始頁面以重定向到彈簧安全

這是我難倒的地方。發送URL重定向到可以把它加進表格行動,像這樣做:

<form action="/j_spring_security_check?spring-security-redirect=${url}" method="POST"> 
    <...> 
</form> 

的問題是,在此之後登錄失敗彈簧安全重定向到同一個頁面(它的成立做,在應用程序上下文),我無法檢索我傳遞給spring-security-redirect的url。如果這是訪問我自己的類之一,我通常會將其作爲隱藏參數傳遞給我的登錄控制器的表單或請求參數。但是,由於春季安全是做重定向的人,我有點失落。

到目前爲止,我想出的唯一解決方案是試圖在sesssion中存儲此URL,但是在登錄完成成功後,也沒有好方法將其刪除。有任何想法嗎?

回答

0

如果您使用Spring Security 3.0,您可以自定義AuthenticationFailureHandler。例如,其默認實現可以配置爲使用forward而不是重定向。

+0

它是2.x,但看着文檔我可能會做類似的事情,我會看看。 – wds 2010-01-20 15:53:47

相關問題