Para personalizar el formulario de inicio de sesión en Spring Security para usar una base de datos personalizada, puede seguir estos pasos:
Crear un servicio de detalles de usuario personalizado:
Implemente la interfaz UserDetailsService para cargar los detalles del usuario desde su base de datos personalizada.
Anule el método loadUserByUsername para consultar su base de datos para obtener los detalles del usuario.
Configurar Spring Security:
En su configuración de Spring Security, defina el bean UserDetailsService.
Configure AuthenticationManager para utilizar su servicio de detalles de usuario personalizado.
Personalice el formulario de inicio de sesión especificando la URL de la página de inicio de sesión y la URL de procesamiento de inicio de sesión.
Implementar el formulario de inicio de sesión personalizado:
Cree un archivo JSP o HTML para el formulario de inicio de sesión personalizado.
Incluya campos de entrada para el nombre de usuario y la contraseña, y un botón de envío.
Utilice la URL de procesamiento de inicio de sesión especificada en la configuración de Spring Security para enviar el formulario.
Aquí hay un ejemplo de implementación:
la clase pública CustomUserDetailsService implementa UserDetailsService {
@Autocableado
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; }
}
@Configuración
@EnableWebSecurity
la clase pública SecurityConfig extiende WebSecurityConfigurerAdapter {
@Autocableado
privado CustomUserDetailsService personalizadoUserDetailsService;
@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(); }
}
Cree un archivo login.jsp (o login.html) en su directorio src/main/webapp/WEB-INF/views (o ubicación equivalente):
En este ejemplo, el formulario de inicio de sesión se envía a la URL /login, que es la URL de procesamiento de inicio de sesión especificada en la configuración de Spring Security.
Al seguir estos pasos, puede personalizar el formulario de inicio de sesión en Spring Security para usar una base de datos personalizada para la autenticación del usuario.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3