SpringBoot приложение не работает с BCrypt

Делаю учебное приложение на SpringBoot + SpringSecurity. При использовании NoOpPasswordEncoder все срабатывает корректно, приложение работает, логиниться удается удачно. Но при использовании бина c BCryptPasswordEncoder не удается логиниться, выходит ошибка при логине: Bad credentials, хотя данные вводятся верные. Подскажите, что можно настроить в приложении, чтобы работал BCryptPasswordEncoder? Вот класс конфига:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    private final UserDetailsService userDetailsService;
    private final SuccessUserHandler successUserHandler;

    public SecurityConfig(@Qualifier("userDetailsServiceImpl") UserDetailsService userDetailsService, SuccessUserHandler successUserHandler) {
        this.userDetailsService = userDetailsService;
        this.successUserHandler = successUserHandler;
    }

    @Autowired
    public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService).passwordEncoder(passwordEncoder());
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable();
        http.authorizeRequests()
                .antMatchers("/user").access("hasAnyRole('ROLE_USER')")
                .antMatchers("/admin").access("hasAnyRole('ROLE_ADMIN')")
                .and().formLogin()
                .successHandler(successUserHandler);
    }

//@Bean
//    public static NoOpPasswordEncoder passwordEncoder() {
//        return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
//    }

@Bean
    public static PasswordEncoder bCryptPasswordEncoder() {
        return new BCryptPasswordEncoder();
    }

Ответы (1 шт):

Автор решения: tequillaz

Пароль, пришедший через API, перед попаданием в UserDetailService пропускается через PasswordEncoder. NoOpPasswordEncoder ничего не делает с паролем, BCryptPasswordEncoder - шифрует. При использовании BCryptPasswordEncoder в БД должен храниться уже зашифрованный пароль.

→ Ссылка