Sicherheitsarchitektur 25.10
Das webforJ-Sicherheitssystem basiert auf einer Grundlage von Schnittstellen und Entwurfsmustern, die flexible und erweiterbare Routen-Schutzmechanismen ermöglichen. In diesem Abschnitt wird erklärt, wie das grundlegende Sicherheitsframework funktioniert und wie man benutzerdefinierte Sicherheitslösungen durch Implementierung dieser Schnittstellen erstellen kann.
Die meisten Anwendungen sollten die Spring Security-Integration verwenden, da sie dies alles automatisch konfiguriert. Implementieren Sie benutzerdefinierte Sicherheitslösungen nur, wenn Sie spezifische Anforderungen haben oder Spring Boot nicht verwenden. Die Spring-Integration basiert auf derselben grundlegenden Architektur.
Sie werden die zentralen Schnittstellen, das Evaluator-Chain-Muster, wie die Navigation abgefangen und ausgewertet wird, sowie verschiedene Ansätze zur Speicherung des Authentifizierungsstatus kennenlernen.
Diese Leitfäden erklären die grundlegende Architektur und die Erweiterungspunkte, die Schnittstellen, die Sie implementieren, und wie sie zusammenarbeiten. Codebeispiele zeigen einen möglichen Ansatz, keine verbindlichen Anforderungen. Ihre Implementierung kann verschiedene Speichermechanismen (JWT, Datenbank, LDAP), verschiedene Verdrahtungsmuster oder unterschiedliche Authentifizierungsflüsse basierend auf Ihren Bedürfnissen verwenden.
Was Sie lernen werden
- Grundlagenarchitektur: Die zentralen Schnittstellen, die das Sicherheitsverhalten definieren und wie sie zusammenarbeiten
- Navigation abfangen: Wie das Sicherheitssystem Navigationsanfragen abfängt und Zugriffsregeln auswertet
- Evaluator Chain-Muster: Wie Sicherheitsregeln in Prioritätsreihenfolge unter Verwendung des Chain-of-Responsibility-Musters ausgewertet werden
- Authentifizierungsspeicherung: Verschiedene Ansätze zur Speicherung des Benutzer-Authentifizierungsstatus (Sitzungen, JWT, Datenbank usw.)
- Vollständige Implementierung: Ein funktionierendes Beispiel, das alle Komponenten miteinander verbunden zeigt
Für wen ist das gedacht
Diese Leitfäden richten sich an Entwickler, die:
- Benutzerdefinierte Sicherheitsimplementierungen für Nicht-Spring-Anwendungen erstellen möchten
- Die grundlegende Architektur verstehen möchten, um Probleme zu beheben
- Benutzerdefinierte Authentifizierungsflüsse oder Autorisierungslogik implementieren möchten
- Sicherheitsevaluatoren mit domänenspezifischer Logik erstellen möchten
- In bestehende Authentifizierungssysteme (LDAP, OAuth, benutzerdefinierte Backends) integrieren möchten
Voraussetzungen
Bevor Sie sich in diese Leitfäden vertiefen, sollten Sie:
- Den Getting Started-Leitfaden abschließen, um Sicherheitskonzepte zu verstehen
- Sicherheitsanmerkungen aus dem Annotations-Leitfaden verstehen
- Mit dem Chain-of-Responsibility-Entwurfsmuster vertraut sein
- Erfahrung mit Java-Schnittstellen und Vererbung haben
Themen
📄️ Foundational Architecture
Das webforJ-Sicherheitssystem basiert auf einer Grundlage von Kernschnittstellen, die zusammenarbeiten, um eine Zugriffssteuerung auf Routenebene bereitzustellen. Diese Schnittstellen definieren die Verträge für das Sicherheitsverhalten, wodurch verschiedene Implementierungen – sei es sitzungsbasiert, auf JSON Web Tokens (JWT) basierend, LDAP-integriert oder datenbankgestützt – in das gleiche zugrunde liegende Framework integriert werden können.
📄️ Navigation Flow
Sicherheitsdurchsetzung in webforJ erfolgt automatisch während der Navigation. Wenn ein Benutzer auf einen Link klickt oder zu einer Route navigiert, unterbricht das Sicherheitssystem die Navigation, bewertet die Zugriffsregeln und erlaubt entweder die Fortsetzung der Navigation oder leitet den Benutzer auf eine geeignete Seite um. Diese Unterbrechung ist für die Benutzer unsichtbar und erfordert keine manuellen Sicherheitsüberprüfungen in Ihrem Komponenten-Code.
📄️ Evaluator Chain
Die Evaluator-Kette ist das Herz des Sicherheitssystems von webforJ. Es handelt sich um eine priorisierte Sequenz von Evaluatoren, die Routen untersuchen und Zugangsbeschlüsse mithilfe des Entwurfsmusters der Verantwortungskette fassen. Zu verstehen, wie die Kette funktioniert, hilft Ihnen, benutzerdefinierte Evaluatoren zu erstellen und unerwartete Zugangsbeschränkungen zu beheben.
📄️ Custom Implementation Example
Dieser Leitfaden beschreibt den Aufbau einer vollständigen benutzerdefinierten Sicherheitsimplementierung unter Verwendung der sitzungsbasierten Authentifizierung. Sie werden lernen, wie die vier Kernschnittstellen zusammenarbeiten, indem Sie sie von Grund auf implementieren.