Creación de usuarios personalizados en Spring Security
Curso de Java Spring Security: Autenticación y Seguridad Web
Contenido del curso
Configuración de seguridad
- 5

Configuración de Seguridad con Spring Security y Basic Authentication
06:32 min - 6

Cómo funciona el BasicAuthenticationFilter por dentro
11:50 min - 7

Deshabilitar CSRF en Spring Security con JWT
07:28 min - 8

Configuración global de CORS en Spring
12:11 min - 9

Configuración de Reglas de Acceso en Spring Security
07:45 min - 10

Creación de usuarios personalizados en Spring Security
Viendo ahora - 11

Creación y Gestión de Roles y Permisos en Aplicaciones Web
05:48 min
Autenticación con BD
Seguridad con JWT
Próximos pasos
Creación de usuarios personalizados en Spring Security
Resumen
¿Cómo crear usuarios personalizados en Spring Security?
Crear usuarios personalizados en Spring Security es una práctica esencial para adaptarse a los requisitos de seguridad específicos de una aplicación. En lugar de utilizar usuarios generados automáticamente por el framework, se pueden definir usuarios en memoria que se personalicen según sea necesario. A continuación, exploraremos cómo implementar esto paso a paso.
¿Cómo implementar UserDetailService?
Para empezar, debemos crear nuestra propia implementación de UserDetailsService. Este servicio es fundamental para gestionar la autenticación de usuarios en Spring Security.
-
Declarar el método: Primero, se crea un método público que retorne un
UserDetailsService. -
Crear usuarios en memoria: Utilizando el builder proporcionado por Spring, se construye un usuario, por ejemplo:
@Bean public UserDetailsService memoryUsers() { UserDetails admin = User.builder() .username("admin") .password("admin") .roles("ADMIN") .build(); return new InMemoryUserDetailsManager(admin); }
En el ejemplo, hemos creado un usuario administrador llamado "admin" con contraseña "admin".
¿Cómo configurar y codificar contraseñas?
Uso de Password Encoder
Para mantener la seguridad de las contraseñas, es crucial utilizar un PasswordEncoder. Spring recomienda usar algoritmos como bcrypt que ofrecen mayor protección.
-
Implementar un Password Encoder: Se crea un
PasswordEncodery se lo anota como un@Beanpara que Spring lo administre.@Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } -
Codificar la contraseña: Se utiliza el
PasswordEncoderpara codificar y almacenar la contraseña.String encodedPassword = passwordEncoder().encode("admin");
¿Cómo probar la autenticación personalizada con Postman?
Una vez configurados los usuarios y el encoder, se puede proceder a verificar la autenticación a través de herramientas como Postman.
-
Configurar autenticación básica: En Postman, establece la autenticación básica usando el usuario "admin" y contraseña "admin".
-
Ejecutar pruebas: Al iniciar la aplicación y realizar peticiones autenticadas a servicios protegidos, se debe recibir un código 200 si todos los detalles coinciden.
¿Qué errores comunes pueden surgir?
-
PasswordEncoder no definido: Si surge un error de falta de
PasswordEncoder, asegúrate de que esté configurado adecuadamente y anotado en Spring. -
Contraseña incorrecta: Un código 401 indica un error en la autenticación. Revisa que tanto usuario como contraseña sean precisos y estén codificados correctamente.
Al implementar estos pasos, has creado exitosamente usuarios personalizados en Spring y asegurado que las contraseñas se manejen con cifrado seguro. ¡Continúa explorando y personalizando más funciones de Spring Security! En la próxima lección, aprenderás a gestionar permisos para distintos roles de usuario. ¡No te lo pierdas!