Web アプリケーションの Spring セキュリティを紹介します。まず、認証マネージャーを次のように設定します。
<authentication-manager>
<authentication-provider>
<password-encoder hash='md5'>
</password-encoder>
<jdbc-user-service data-source-ref="dataSource"/>
</authentication-provider>
</authentication-manager>
テストでは、ユーザー名とパスワードの両方に「1」を使用します。オンラインの md5 ハッシュ ジェネレーターを使用すると、md5(1) の「c4ca4238a0b923820dcc509a6f75849b」が得られました。ログインは、この構成で正常に機能します。ソルトを試してみたかったので、認証マネージャーを次のように変更します。
<authentication-manager>
<authentication-provider>
<password-encoder hash='md5'>
<salt-source user-property="username"/>
</password-encoder>
<jdbc-user-service data-source-ref="dataSource"/>
</authentication-provider>
</authentication-manager>
だから私がウェブで読んだように、ソルトの使用方法はハッシュ(ソルト+パスワード)のようなものです。同じツールを使用して「11」をハッシュし、ハッシュ値「6512bd43d9caa6e02c990b0a82652dca」を取得しました。その値でデータベースを更新します。しかし、「Caused : Bad credentials」というエラーがスローされてログインに失敗するようになりました。これは、パスワードがデータベースと一致しなかったことを意味します。だから私の質問は、春が塩漬けに別の方法を使用するということですか?