2014-04-09 52 views
1

我正在使用Spring Security 2.0.7。它已經實施UserDetailsServicepreAuthenticatedUserDetailsService bean。Spring Security中使用UserDetailsS​​ervice實現和異常的自定義消息

它工作正常。現在我想添加一個新的自定義錯誤消息。 在方法loadUserByUsername我想添加一些自定義bussines邏輯。 例如。基於某些屬性,我不希望用戶登錄,所以我拋出一個自定義消息UsernameNotFoundException

Spring是處理異常並將其設置爲會話的人,但是當我使用「SPRING_SECURITY_LAST_EXCEPTION」鍵從會話中檢索異常時,我收到「Bad credentials」消息。

目前正在修復一個討厭的workarround,主要是我想了解發生了什麼!

想法?

詩篇。我在這裏閱讀了很多這個問題,但大多數都使用Spring安全3.0

+1

從安全角度來看,這基本上就是您想要的。您不想告訴用戶**用戶名**不存在。然後黑客會繼續使用下一個用戶名,直到他得到不同的信息(密碼錯誤),他將開始黑客密碼。 –

+0

是的,我明白你的意思,但這是業務邏輯,例如憑證是確定的,但密碼已過期,或用戶尚未激活。用戶應該看到這些消息。 – gonzalon

+0

請詳細說明您的問題,因爲目前還不清楚您想要什麼。您的評論和問題與您談論的「UsernameNotFoundException」無關,因爲它與非活動用戶的過期憑證無關。 –

回答

相關問題