インターフェース PasswordEncoder
- すべての既知の実装クラス:
AbstractPasswordEncoder、AbstractValidatingPasswordEncoder、Argon2Password4jPasswordEncoder、Argon2PasswordEncoder、BalloonHashingPassword4jPasswordEncoder、BcryptPassword4jPasswordEncoder、BCryptPasswordEncoder、DelegatingPasswordEncoder、LdapShaPasswordEncoder、Md4PasswordEncoder、MessageDigestPasswordEncoder、NoOpPasswordEncoder、Pbkdf2Password4jPasswordEncoder、Pbkdf2PasswordEncoder、ScryptPassword4jPasswordEncoder、SCryptPasswordEncoder、StandardPasswordEncoder
public interface PasswordEncoder
パスワードをエンコードするためのサービスインターフェース。推奨される実装は
BCryptPasswordEncoder です。方法の概要
修飾子と型メソッド説明@Nullable StringSEencode(@Nullable CharSequenceSE rawPassword) 生のパスワードをエンコードします。booleanmatches(@Nullable CharSequenceSE rawPassword, @Nullable StringSE encodedPassword) ストレージから取得したエンコードされたパスワードが、エンコードされた後に送信された生のパスワードと一致することを確認します。default booleanupgradeEncoding(@Nullable StringSE encodedPassword) セキュリティを強化するためにエンコードされたパスワードを再度エンコードする必要がある場合は true を返し、そうでない場合は false を返します。
メソッドの詳細
encode
生のパスワードをエンコードします。一般的に、優れたエンコードアルゴリズムは適応型の一方向関数を使用します。- パラメーター:
rawPassword- エンコードされていないパスワード。ユーザーがパスワードを持っていない場合、値は null になることがあります。その場合、結果は null になります。- 戻り値:
- 非 null エンコードされたパスワード。ただし、rawPassword が null の場合、結果は null になります。
matches
ストレージから取得したエンコードされたパスワードが、送信された生のパスワードとエンコード後に一致するかどうかを検証します。パスワードが一致する場合は true を、一致しない場合は false を返します。保存されたパスワード自体はデコードされません。rawPassword または encodedPassword のいずれかが null または空の文字列の場合、true は返されません。- パラメーター:
rawPassword- エンコードして照合する生のパスワード。encodedPassword- 比較するストレージからのエンコードされたパスワード。- 戻り値:
- エンコード後の生のパスワードが、ストレージからエンコードされたパスワードと一致する場合は true になります。
upgradeEncoding
セキュリティを強化するためにエンコードされたパスワードを再度エンコードする必要がある場合は true を返し、そうでない場合は false を返します。デフォルトの実装は常に false を返します。- パラメーター:
encodedPassword- チェックするエンコードされたパスワード。ユーザーがパスワードを持っていない場合は null になる可能性があります。- 戻り値:
- セキュリティ強化のため、エンコードされたパスワードを再度エンコードする必要がある場合は true、そうでない場合は false です。encodedPassword が null(ユーザーがパスワードを持っていない)の場合、常に false となります。