私は春のセキュリティを使用しています。間違ったユーザー名やパスワードを記録するためにaspectjを使用しています。私は例外のためにloadUserByUsernameをチェックすることによって間違ったユーザ名を傍受することができました。どうやって間違ったパスワードを傍受するのですか?スプリングセキュリティインターセプト間違ったパスワード
Springはユーザーオブジェクトを取得し、入力されたパスワードをユーザーパスワードと照合しているかのように見えます。どのように私は、事前
私は春のセキュリティを使用しています。間違ったユーザー名やパスワードを記録するためにaspectjを使用しています。私は例外のためにloadUserByUsernameをチェックすることによって間違ったユーザ名を傍受することができました。どうやって間違ったパスワードを傍受するのですか?スプリングセキュリティインターセプト間違ったパスワード
Springはユーザーオブジェクトを取得し、入力されたパスワードをユーザーパスワードと照合しているかのように見えます。どのように私は、事前
私はこのような側面についてはあまり考えていないので、このかもしれないヘルプがありません。
まず、間違ったユーザー名と間違ったパスワードを区別する必要がありますか(特に、この情報がユーザーに返される場合)。
デフォルトでは、spring-securityはこれを推奨しません。そのため、デフォルトではどちらの場合でもBadCredentialsException
が返されます。
スプリングセキュリティ3.0.x
最初protected
retrieveUser
()メソッドでユーザを検索した後、protected
additionalAuthenticationChecks()
方法でパスワードの検証を行い(AbstractUserDetailsAuthenticationProvider
クラス)public
authenticate()
方法を提供します。
(それがデフォルトでtrue
です)false
にプロパティhideUserNotFoundExceptions
を設定することにより、authenticate()
方法は間違ったパスワードの場合にUserNotFoundException
(間違ったユーザーの場合)とBadCredentialsException
をチェックすることができます。
で
おかげで通常使用すると、すべての認証の失敗を処理するためにExceptionTranslationFilterとFilterSecurityInterceptorを使用するすべての例外のためにこれを傍受することができます。 The Security Filter Chainのページを見直して、必要なものが得られない場合は質問に説明を加えてください。
いくつかのコードサンプルを手伝ってください。アスペクトを編むには、チェックする必要があるメソッドを用意する必要があります。春のセキュリティには慣れていません。確かではありません。拡張するクラスと、パスワードが間違っているかどうかを確認するメソッドです。 – user373201