Springでパスワード変更機能の実装
学習の記録用として記載
DBのパスワードと入力されたパスワードの照合
・パスワードはハッシュ化されたものが登録されている状態
※DBにハッシュ化(暗号化)してパスワードを保存⬇️
Service.java
@Autowired
PasswordEncoder;
public Entity save(Entity user, String rawPassword){
String encodedPassword = passwordEncoder.encode(password);
user.setPassword(encodedPassword);
return Repository.save(user);
}
PasswordEncoderとは
Spring Securityが提供するクラスで、DBなどにログインパスワードを保存するときの暗号化に関わるクラス
・パスワードを暗号化(ハッシュ化)をする
・認証時に入力のパスワードと、保存した暗号化パスワードが一致するかを確認する
Spring Security 公式リファレンス
・入力したパスワードとDBに保存されているハッシュかされたパスワードが一致するかを照合する
Controller.java
//入力したパスワードとDBのハッシュ化されているパスワードの照合
if (passwordEncoder.matches(rawPass,dbPass)){
//一致すれば画面遷移
return "/index";
}