Авторизация в Spring Security с БД
Как настроить авторизацию пользователей, получая данные из БД?
Предположим, я зарегистрировался, после чего хочу перейти на другую страницу. Меня перекидывает на /login
. Ввожу данные и выходит ошибка:
Также вылетает ошибка в консоль:
PreparedStatementCallback; SQL [select username, password from users where username=?]; Индекс колонки вне диапазона: 3. Допустимые значения: 1..2
Ставил вместо username=?
- username=user
, и при регистрации вводил user
.
Ничего не помогает.
@Configuration
public class WebSecurityConfig {
@Autowired private DataSource dataSource;
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests((requests) -> requests
.requestMatchers("/", "/home").permitAll()
.requestMatchers("/", "/register").permitAll()
.anyRequest().authenticated()
)
.formLogin((form) -> form
.loginPage("/login")
.permitAll()
)
.logout((logout) -> logout.permitAll());
return http.build();
}
@Bean
public UserDetailsManager users(DataSource dataSource) {
JdbcUserDetailsManager users = new JdbcUserDetailsManager(dataSource);
users.setUsersByUsernameQuery("select username, password from users where username=?");
return users;
}
}
Версия Spring - 3.1.0
База Данных - Postgresql