Spring Security の新しい PasswordEncoder の使い方 質問する

Spring Security の新しい PasswordEncoder の使い方 質問する

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 を使用して設定する合理的な方法はありますか?

ベストアンサー1

既存のフォーマットでユーザーを登録していない場合は、BCrypt パスワード エンコーダーその代わり。

ソルトについてまったく心配する必要がないので、面倒な作業が大幅に軽減されます。詳細はエンコーダー内に完全にカプセル化されています。BCrypt を使用すると、単純なハッシュ アルゴリズムを使用するよりも強力になり、他の言語を使用するアプリケーションと互換性のある標準でもあります。

新しいアプリケーションに他のオプションを選択する理由は実際にはありません。

おすすめ記事