Чтобы настроить форму входа в Spring Security для использования пользовательской базы данных, вы можете выполнить следующие шаги:
Создайте пользовательский сервис UserDetailsService:
Реализуйте интерфейс UserDetailsService для загрузки сведений о пользователе из вашей пользовательской базы данных.
Переопределите метод loadUserByUsername, чтобы запросить информацию о пользователе в вашей базе данных.
Настройте Spring Security:
В конфигурации Spring Security определите bean-компонент UserDetailsService.
Настройте AuthenticationManager для использования вашей пользовательской службы UserDetailsService.
Настройте форму входа, указав URL-адрес страницы входа и URL-адрес обработки входа.
Реализация пользовательской формы входа:
Создайте файл JSP или HTML для пользовательской формы входа.
Добавьте поля ввода имени пользователя и пароля, а также кнопку отправки.
Для отправки формы используйте URL-адрес обработки входа, указанный в конфигурации Spring Security.
Вот пример реализации:
публичный класс CustomUserDetailsService реализует UserDetailsService {
@Autowired
частный JdbcTemplate jdbcTemplate;
@Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { String query = "SELECT * FROM users WHERE username = ?"; User user = jdbcTemplate.queryForObject(query, new Object[]{username}, new UserRowMapper()); if (user == null) { throw new UsernameNotFoundException("User not found"); } return user; }
}
@Конфигурация
@EnableWebSecurity
общедоступный класс SecurityConfig расширяет WebSecurityConfigurerAdapter {
@Autowired
частный CustomUserDetailsService customUserDetailsService;
@Autowired private PasswordEncoder passwordEncoder; @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(customUserDetailsService) .passwordEncoder(passwordEncoder); } @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/login").permitAll() .anyRequest().authenticated() .and() .formLogin() .loginPage("/login") .loginProcessingUrl("/login") .defaultSuccessUrl("/welcome") .failureUrl("/login?error") .permitAll(); }
}
Создайте файл login.jsp (или login.html) в каталоге src/main/webapp/WEB-INF/views (или в его эквиваленте):
В этом примере форма входа отправляется по URL-адресу /login, который является URL-адресом обработки входа, указанным в конфигурации Spring Security.
Выполнив эти шаги, вы можете настроить форму входа в Spring Security для использования пользовательской базы данных для аутентификации пользователей.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3