Я использую базу данных H2 (допускается ипользовать HSQLDB), проект на Spring Boot 2 со следующим конфигом:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserService userService;
@Autowired
private PasswordEncoder passwordEncoder;
@Bean
public PasswordEncoder getPasswordEncoder() {
return new BCryptPasswordEncoder(8);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/registration", "/activate/*").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userService)
.passwordEncoder(passwordEncoder);
}
}
Есть файл data.sql, делающий insert при старте:
insert into users (email, username, password)
values ('admin@gmail.com', 'admin', 'admin'),
('user@gmail.com', 'user', 'password'),
('user2@gmail.com', 'user2', 'password');
insert into user_role (user_id, roles)
values (100000, 'ADMIN'),
(100000, 'USER'),
(100001, 'USER'),
(100002, 'USER');
На текущий момент при попытке авторизации через этих пользователей я получаю ошибку - Encoded password does not look like BCrypt
Мне нужно либо зашифровать эти пароли через BCrypt, либо целиком переписать схему шифрования. Подскажите - как это сделать?