Arquitectura de Seguridad 25.10
El sistema de seguridad webforJ se basa en una fundación de interfaces y patrones de diseño que permiten una protección de rutas flexible y extensible. Esta sección explica cómo funciona el marco de seguridad fundamental y cómo construir soluciones de seguridad personalizadas implementando estas interfaces.
La mayoría de las aplicaciones deberían usar la integración de Spring Security, ya que configura automáticamente todo esto por ti. Solo implementa seguridad personalizada si tienes requisitos específicos o si no estás utilizando Spring Boot. La integración de Spring se basa en esta misma arquitectura de fundación.
Aprenderás sobre las interfaces principales, el patrón de cadena de evaluadores, cómo se intercepta y evalúa la navegación, y diferentes enfoques para almacenar el estado de autenticación.
Estas guías explican la arquitectura fundamental y los puntos de extensión, las interfaces que implementas y cómo trabajan juntas. Los ejemplos de código muestran un posible enfoque, no son requisitos prescriptivos. Tu implementación puede utilizar diferentes mecanismos de almacenamiento (JWT, base de datos, LDAP), diferentes patrones de conexión o diferentes flujos de autenticación según tus necesidades.
Lo que aprenderás
- Arquitectura fundamental: Las interfaces centrales que definen el comportamiento de seguridad y cómo trabajan juntas
- Intercepción de navegación: Cómo el sistema de seguridad intercepta solicitudes de navegación y evalúa las reglas de acceso
- Patrón de cadena de evaluadores: Cómo se evalúan las reglas de seguridad en orden de prioridad utilizando el patrón de cadena de responsabilidad
- Almacenamiento de autenticación: Diferentes enfoques para almacenar el estado de autenticación de usuarios (sesiones, JWT, base de datos, etc.)
- Implementación completa: Un ejemplo funcional que muestra todos los componentes conectados
A quién va dirigido
Estas guías son para desarrolladores que desean:
- Construir implementaciones de seguridad personalizadas para aplicaciones que no son de Spring
- Comprender la arquitectura fundamental para solucionar problemas
- Implementar flujos de autenticación personalizados o lógica de autorización
- Crear evaluadores de seguridad con lógica específica de dominio
- Integrarse con sistemas de autenticación existentes (LDAP, OAuth, backend personalizados)
Requisitos previos
Antes de sumergirte en estas guías, deberías:
- Completar la guía de Introducción para entender los conceptos de seguridad
- Comprender las anotaciones de seguridad de la guía de Anotaciones
- Estar familiarizado con el patrón de diseño de cadena de responsabilidad
- Tener experiencia con interfaces Java y herencia
Temas
📄️ Foundational Architecture
El sistema de seguridad de webforJ está construido sobre una base de interfaces fundamentales que trabajan en conjunto para proporcionar control de acceso a nivel de ruta. Estas interfaces definen los contratos para el comportamiento de seguridad, permitiendo que diferentes implementaciones, ya sean basadas en sesiones, en JSON Web Tokens (JWT), integradas con LDAP o respaldadas por base de datos, se conecten al mismo marco subyacente.
📄️ Navigation Flow
La aplicación de seguridad en webforJ ocurre automáticamente durante la navegación. Cuando un usuario hace clic en un enlace o navega a una ruta, el sistema de seguridad intercepta la navegación, evalúa las reglas de acceso y permite que la navegación continúe o redirige al usuario a una página apropiada. Esta interceptación es invisible para los usuarios y no requiere verificaciones manuales de seguridad en el código de su componente.
📄️ Evaluator Chain
La cadena de evaluadores es el corazón del sistema de seguridad de webforJ. Es una secuencia de evaluadores ordenados por prioridades que examinan las rutas y toman decisiones de acceso utilizando el patrón de diseño de cadena de responsabilidad. Entender cómo funciona la cadena te ayuda a crear evaluadores personalizados y a solucionar denegaciones de acceso inesperadas.
📄️ Custom Implementation Example
Esta guía explica cómo construir una implementación de seguridad personalizada completa utilizando autenticación basada en sesiones. Aprenderás cómo las cuatro interfaces centrales trabajan juntas al implementarlas desde cero.