원인
SpringSecurity 5버전 이상부터는 PasswordEncoder를 처리를 하는데,
이때 PasswordEncoder를 처리하기위한 형식으로 pw가 저장되어있지 않기때문이다.
- 기본이 bcrypt이다.
- SpringSecurity가 로그인 과정에서 어떤 Encoder를 쓸지는 database에 저장된 password의 prefix { Encoder명 }를 보고 결정한다.
- 따로 설정을하지않았으니, SpringSecurity가 prefix를 보고 Enocder형식을 정해야 하는데, 이것조처 설정이 되어있지 않아서 에러가 난것
해결 방법
securityconfig 에 빈을 등록한다.
@Bean
public PasswordEncoder noOpPasswordEncoder(){
return NoOpPasswordEncoder.getInstance();
}
public PasswordEncoder noOpPasswordEncoder(){
return NoOpPasswordEncoder.getInstance();
}