![](/img/trans.png)
[英]javax.faces.FacesException . It is a exception belongs to Spring Security 3.x
[英]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.