Spring Security 3.1.4.RELEASE以降、古いバージョンorg.springframework.security.authentication.encoding.PasswordEncoder
は非推奨になり、に代わりましたorg.springframework.security.crypto.password.PasswordEncoder
。私のアプリケーションはまだ一般にリリースされていないため、廃止予定ではない新しいAPIに移行することにしました。
今までは、ReflectionSaltSource
ユーザーの登録日をパスワードのユーザーごとのソルトとして自動的に使用するものがありました。
String encodedPassword = passwordEncoder.encodePassword(rawPassword, saltSource.getSalt(user));
ログインプロセス中に、Springは私のBeanを使用して、ユーザーがサインインできるかどうかを適切に確認しました。SHA-1のデフォルトの実装にはStandardPasswordEncoder
グローバルを追加する機能しかないため、新しいパスワードエンコーダーではこれを実現できません。エンコーダー作成中の秘密のソルト。
非推奨ではないAPIを使用して設定する方法の合理的な方法はありますか?
実際に既存の形式でユーザーを登録していない場合は、代わりにBCryptパスワードエンコーダーを使用するように切り替えることをお勧めします。
ソルトをまったく気にする必要がないため、手間が大幅に軽減されます。詳細はエンコーダ内に完全にカプセル化されています。BCryptを使用することは、プレーンハッシュアルゴリズムを使用するよりも強力であり、他の言語を使用するアプリケーションと互換性のある標準でもあります。
新しいアプリケーションのために他のオプションを選択する理由は本当にありません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加