アプリケーションでの認証と承認をサポートするために Spring Security を使用しています。セキュリティコンテキストのいくつかの側面をカスタマイズしましたが、これが私の質問/問題に関与しているとは思いません.
現在、Spring 3.1.2.RELEASEとSpring Security 3.1.3.RELEASEを使用していますが、最新バージョンに更新しようとしています。
AbstractUserDetailsAuthenticationProvider$DefaultPreAuthenticationChecks()
以下に説明する、今見つけた内部クラスにバグがあると思います。
ユーザーと不適切な (間違った) パスワードでログインしようとしたが、このユーザーがユーザー リポジトリで見つかり、それらがロックされているか、無効になっているか、アカウントの有効期限が切れている場合、Spring Security はLockedException
、DisabledException
、またはで応答しAccountExpiredException
ます。
ただし、この応答から、ユーザーがリポジトリに存在すると判断しただけで、パスワードを推測しただけで、それが正しいか間違っているかはまだわかりません! むしろ、Spring Security は主に で応答する必要がBadCredentialsException
あり、資格情報が認証されている場合にのみ、ロックされた、無効化された、またはアカウントの期限切れの例外で応答します。
他の誰かがこの動作を見たり報告したりしましたか? 探したけどどこにもない!
ありがとうロブ
編集
Spring 3.2.1.RELEASEとSpring Security 3.2.0.M1にアップグレードしたばかりですが、この動作は変わりません。