feat(CU01): autenticación, recuperación de contraseña, factories, proxy y consola
feat(CU01): autenticación, recuperación de contraseña, factories, proxy y consola
¿Qué se hizo?
Se implementó el módulo CU01 (Autenticación, gestión de sesión y contraseña) y se integró con CU03 mediante una consola interactiva para poder probar ambos módulos.
Cambios
- Autenticación: inicio de sesión con correo y contraseña, validando que el usuario esté activo y su rol (AutenticacionService).
- Contraseñas: clase específica para el manejo de contraseñas, con soporte de contraseña temporal (Contrasenas).
- Recuperación de contraseña: envío de correo con CorreoSender / SmtpCorreoSender. La configuración va en mail.properties (solo se versiona mail.properties.example).
- Repositorios: interfaces UsuarioRepositorio y RecuperacionRepositorio, con implementaciones en el paquete memory.
- Patrones de diseño:
- Singleton: DatabaseConfig.
- Factory Method: UsuarioFactory, AdministradorFactory, EvaluadorExternoFactory.
- Proxy: UsuarioServiceProxy sobre UsuarioService.
- Consola interactiva (Consola, llamada desde Main) para probar los módulos sin modificar el código.
- Tests en src/test.
- Ajustes en pom.xml, .gitignore y DatabaseConfig.
- README actualizado.
Cómo probarlo
- Copiar db.properties.example y mail.properties.example como db.properties y mail.properties, y completar los datos propios.
- Ejecutar Main desde IntelliJ.
- Probar: iniciar sesión, cambiar contraseña, "Olvidé mi contraseña" y cerrar sesión.
Pendiente
- Persistencia en PostgreSQL con DAO.
- Validaciones completas, excepciones personalizadas y cifrado de contraseñas (Etapa 3).