Para personalizar o formulário de login no Spring Security para usar um banco de dados personalizado, você pode seguir estas etapas:
Crie um UserDetailsService personalizado:
Implemente a interface UserDetailsService para carregar detalhes do usuário do seu banco de dados personalizado.
Substitua o método loadUserByUsername para consultar seu banco de dados em busca dos detalhes do usuário.
Configurar Spring Security:
Na configuração do Spring Security, defina o bean UserDetailsService.
Configure o AuthenticationManager para usar seu UserDetailsService personalizado.
Personalize o formulário de login especificando o URL da página de login e o URL de processamento de login.
Implemente o formulário de login personalizado:
Crie um arquivo JSP ou HTML para o formulário de login personalizado.
Inclua campos de entrada para nome de usuário e senha e um botão de envio.
Use o URL de processamento de login especificado na configuração do Spring Security para enviar o formulário.
Aqui está um exemplo de implementação:
a classe pública CustomUserDetailsService implementa UserDetailsService {
@Autowired
JdbcTemplate privado 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; }
}
@Configuração
@EnableWebSecurity
classe pública SecurityConfig estende WebSecurityConfigurerAdapter {
@Autowired
private 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(); }
}
Crie um arquivo login.jsp (ou login.html) em seu diretório src/main/webapp/WEB-INF/views (ou local equivalente):
Neste exemplo, o formulário de login é enviado para a URL /login, que é a URL de processamento de login especificada na configuração do Spring Security.
Seguindo estas etapas, você pode personalizar o formulário de login no Spring Security para usar um banco de dados personalizado para autenticação do usuário.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3