2010-09-09 67 views
8

我正在使用Spring 3.0以及Spring Security。我一直使用以下配置:在彈簧安全性驗證失敗後重定向回原始頁面

<form-login login-page="/login" authentication-failure-url="/login?error=credentials" default-target-url="/account" login-processing-url="/security_check"/> 

所以當用戶沒有正確登錄時,他們去/登錄。現在我在網站的每個頁面上都有一個登錄對話框。如果他們沒有正確登錄,我不希望他們重定向到/登錄..而是我希望他們返回到他們所在的頁面。當我看到error = credentials作爲參數時,我會彈出相同的對話框。

那麼我該如何做到這一點?

回答

2
<!-- redirect url for failure of authentication --> 
<bean id="simpleUrlAuthenticationFailureHandler" class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler"> 
     <constructor-arg value="/login.jsp?error=1"></constructor-arg> 
</bean> 

我會建議得到訪問從上下文對象和重置URL或寫可能執行具體行動,以你在

http://static.springsource.org/spring-security/site/apidocs/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.html

+2

嗯頁面自定義的處理程序,長相就像我可以在SimpleUrlAuthenticationFailureHandler上設置RedirectStrategy屬性一樣。 RedirectStrategy看起來像一個簡單的接口來實現我可以調用response.sendRedirect(request.getHeader(「Referer」));這是處理這種情況的正確方法嗎? – 2010-09-10 12:14:08

+0

@它怎麼樣?您是否編寫了自己的SimpleUrlAuthenticationFailureHandler?你有沒有找到關於這方面的任何好的信息,或者你介意提供一些你的代碼?我一直在尋找一段時間,但很難找到任何東西。 – nilsi 2013-09-24 15:54:37

相關問題