Este proyecto demuestra la implementación del patrón Chain of Responsibility en Java. Se trata de un sistema de autenticación y autorización para una aplicación en línea, donde las solicitudes se procesan de manera secuencial a través de diferentes manejadores (handlers).
- AbstractHandler: Clase base abstracta para todos los manejadores.
- ConcreteHandlerInvalid: Maneja las solicitudes con fallos repetidos y bloquea las IP después de múltiples intentos fallidos.
- ConcreteHandlerUsuario: Maneja las solicitudes de usuarios normales.
- ConcreteHandlerAdmin: Maneja las solicitudes de administradores.
- ConcreteHandlerCache: Maneja el historial de inicio de sesión.
- SistemaORdenes: Es el Handler Final, que da acceso al sistema de ordenes.
- GeneradorIp: Genera una ip random.
- SolicitudLogin: Clase que representa la solicitud de autenticación con usuario, contraseña, tipo de usuario.
- Cliente: Clase principal que configura y ejecuta la cadena de responsabilidad.