¿Cómo auditar usuarios en registros con Spring Security?
En el mundo del desarrollo de software, auditar cambios en bases de datos es crucial para garantizar la integridad y seguridad de la información. Anteriormente, en Platzi, aprendimos a auditar fechas de creación y modificación en nuestras aplicaciones con Spring Data JPA. Ahora, gracias al curso de Spring Security, daremos un paso más allá, implementando una auditoría más detallada que incluye el usuario que realiza cambios en los registros de nuestra base de datos.
¿Cómo se configura la entidad para auditar usuarios?
Para poder auditar no solo la fecha de creación y modificación, sino también el usuario, debes realizar algunos ajustes en tu entidad. Aquí te explicamos cómo hacerlo utilizando una entidad llamada PizzaEntity.
Anotaciones y Extensiones:
Asegúrate de que PizzaEntity tenga la anotación @EntityListener. Esta debe incluir dos listeners:
AuditPizzaListener: Tu propia implementación de auditoría.
AuditingEntityListener: Proporcionada por Spring para la auditoría estándar.
Asegúrate de validar si la autenticación es nula o si no está autenticado antes de capturar el usuario.
¿Cómo se prueba la auditoría de usuario?
Luego de implementar estos cambios, es vital verificar que todo funcione correctamente:
Generación de JSON Web Token:
Usa una herramienta como Postman para generar un JSON Web Token (JWT) con credenciales válidas.
Pruebas de Creación y Modificación:
Realiza operaciones en la base de datos autenticándote con el token generado.
Prueba la creación de un nuevo registro y verifica que CreatedBy contenga el usuario correcto.
Realiza una modificación y comprueba que ModifiedBy se actualice correctamente.
Verificación en MySQL:
Ejecuta consultas en tu base de datos MySQL para comprobar que los cambios se reflejan correctamente en los registros.
¿Por qué es importante una auditoría detallada?
Implementar una auditoría que incluye usuarios no solo aporta un plus de seguridad a tu aplicación, sino que también permite rastrear acciones específicas en caso de errores o accesos no deseados. Incrementa la transparencia y la confiabilidad del sistema, aspectos esenciales en entornos de producción. Además, optimiza el monitoreo de actividades y facilita la identificación de patrones inusuales o potencialmente peligrosos. ¿Te animas a implementarlo? ¡Asegúrate de probar y depurar tu código a fondo!
¡Sigue adelante con este conocimiento y aplica estas técnicas para mejorar la seguridad y robustez de tus proyectos con Spring!
Auditoría de Usuarios con Spring Security y Data JPA