簡體   English   中英

Spring Security 3.x + MVC-異常處理

[英]spring security 3.x + mvc - exception handling

我是Spring Security 3.x的新手,所以也許我的問題很傻。

用例:登錄頁面,客戶輸入了錯誤的數據(例如錯誤的密碼),然后應該在登錄頁面上顯示一些錯誤消息

場景:登錄處理最終在我的客戶身份驗證提供程序中顯示,例如AuthenticationServiceException。 然后,客戶再次被重定向到登錄頁面

問題:我已經為登錄操作設置了控制器@RequestMapping(value =“ login”)。 我想知道引發了異常,並且我想在登錄操作中顯示一些文本(例如exception.getLocalizedMessage())。 怎么樣? 我如何捕獲此AuthenticationServiceException以使控制器知道顯示某些內容?

謝謝

驗證失敗時,會將異常使用名稱SPRING_SECURITY_LAST_EXCEPTION存儲在模型中。 您可以在登錄頁面上顯示異常消息,以下示例來自Velocity視圖:

#if ($SPRING_SECURITY_LAST_EXCEPTION)
<p class="error">${SPRING_SECURITY_LAST_EXCEPTION.message}</p>
#end

我在控制器中使用以下命令:

Object lastException = webRequest.getAttribute(WebAttributes.AUTHENTICATION_EXCEPTION,  WebRequest.SCOPE_SESSION);
if (lastException != null) {
    ....
}

然后,我同意最后的例外。 但是整個概念有點愚蠢,例如,該異常保留在會話中,因此每次用戶刷新時都會顯示。 應該有一個更好的解決方案.....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM