Architecture de sécurité 25.10
Le système de sécurité webforJ est construit sur une base d'interfaces et de modèles de conception qui permettent une protection des routes flexible et extensible. Cette section explique comment fonctionne le cadre de sécurité fondamental, et comment construire des solutions de sécurité personnalisées en implémentant ces interfaces.
La plupart des applications devraient utiliser l'intégration avec Spring Security, car elle configure automatiquement tout cela pour vous. Implémentez une sécurité personnalisée uniquement si vous avez des exigences spécifiques ou si vous n'utilisez pas Spring Boot. L'intégration Spring est construite sur cette même architecture de base.
Vous apprendrez sur les interfaces principales, le modèle de chaîne d'évaluateurs, comment la navigation est interceptée et évaluée, et différentes approches pour stocker l'état d'authentification.
Ces guides expliquent l'architecture fondamentale et les points d'extension, les interfaces que vous implémentez, et comment elles fonctionnent ensemble. Les exemples de code montrent une approche possible, sans exigences prescriptives. Votre implémentation peut utiliser différents mécanismes de stockage (JWT, base de données, LDAP), différents modèles de câblage ou différents flux d'authentification en fonction de vos besoins.
Ce que vous apprendrez
- Architecture de base : Les interfaces principales qui définissent le comportement de sécurité et comment elles fonctionnent ensemble
- Interception de navigation : Comment le système de sécurité intercepte les requêtes de navigation et évalue les règles d'accès
- Modèle de chaîne d'évaluateurs : Comment les règles de sécurité sont évaluées par ordre de priorité à l'aide du modèle de chaîne de responsabilité
- Stockage d'authentification : Différentes approches pour stocker l'état d'authentification des utilisateurs (sessions, JWT, base de données, etc.)
- Implémentation complète : Un exemple fonctionnel montrant tous les composants connectés
À qui cela s'adresse
Ces guides s'adressent aux développeurs qui souhaitent :
- Construire des implémentations de sécurité personnalisées pour des applications non-Spring
- Comprendre l'architecture fondamentale pour résoudre des problèmes
- Implémenter des flux d'authentification personnalisés ou une logique d'autorisation
- Créer des évaluateurs de sécurité avec une logique spécifique au domaine
- Intégrer des systèmes d'authentification existants (LDAP, OAuth, backends personnalisés)
Prérequis
Avant de plonger dans ces guides, vous devriez :
- Compléter le guide de démarrage pour comprendre les concepts de sécurité
- Comprendre les annotations de sécurité à partir du guide des annotations
- Être familiarisé avec le modèle de chaîne de responsabilité
- Avoir de l'expérience avec les interfaces Java et l'héritage
Sujets
📄️ Foundational Architecture
Le système de sécurité webforJ est construit sur une fondation d'interfaces de base qui travaillent ensemble pour fournir un contrôle d'accès au niveau des routes. Ces interfaces définissent les contrats pour le comportement de sécurité, permettant à différentes implémentations, qu'elles soient basées sur des sessions, sur des JSON Web Tokens (JWT), intégrées à LDAP ou basées sur des bases de données, de s'intégrer dans le même cadre sous-jacent.
📄️ Navigation Flow
La mise en œuvre de la sécurité dans webforJ se fait automatiquement lors de la navigation. Lorsqu'un utilisateur clique sur un lien ou navigue vers une route, le système de sécurité intercepte la navigation, évalue les règles d'accès et permet soit à la navigation de se poursuivre, soit redirige l'utilisateur vers une page appropriée. Cette interception est invisible pour les utilisateurs et ne nécessite aucune vérification manuelle de la sécurité dans le code de votre composant.
📄️ Evaluator Chain
La chaîne d'évaluateurs est le cœur du système de sécurité de webforJ. C'est une séquence d'évaluateurs ordonnée par priorité qui examine les routes et prend des décisions d'accès en utilisant le modèle de conception de la chaîne de responsabilité. Comprendre comment la chaîne fonctionne vous aide à créer des évaluateurs personnalisés et à résoudre les refus d'accès inattendus.
📄️ Custom Implementation Example
Ce guide explique comment construire une implémentation de sécurité personnalisée complète utilisant l'authentification basée sur les sessions. Vous apprendrez comment les quatre interfaces principales fonctionnent ensemble en les mettant en œuvre à partir de zéro.