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
Grundlegende Architektur
Das webforJ-Sicherheitssystem basiert auf einer Grundlage von Kernschnittstellen, die zusammenarbeiten, um eine Zugriffskontrolle auf Routenebene bereitzustellen. Diese Schnittstellen definieren die Verträge für das Sicherheitsverhalten und ermöglichen es verschiedenen Implementierungen, ob sitzungsbasiert, auf JSON Web Tokens (JWT) basierend, LDAP-integriert oder datenbankgestützt, dasselbe zugrunde liegende Framework zu verwenden.
Navigationsablauf
Trace how RouteSecurityObserver intercepts navigation, runs evaluators, and redirects users before any view renders.
Evaluator-Kette
Die Evaluator-Kette ist das Herzstück des Sicherheitssystems von webforJ. Sie ist eine prioritätsgeordnete Sequenz von Evaluatoren, die Routen überprüfen und Zugangsentscheidungen anhand des Entwurfsmusters der Verantwortungskette treffen. Zu verstehen, wie die Kette funktioniert, hilft Ihnen, benutzerdefinierte Evaluatoren zu erstellen und unerwartete Zugriffverweigerungen zu beheben.
Beispiel für eine eigene Implementierung
Build a session-based security stack by implementing SecurityConfiguration, SecurityContext, SecurityManager, and SecurityRegistrar.
Securing a Java web app?
Walk the team through your login, roles, and access rules.
Weiterlernen
ArtikelSpring Security role-based UI access: why protecting routes beats hiding elements
ArtikelSecuring webforJ Routes Before the View Exists
ArtikelSecure Java web framework for enterprise teams
ArtikelBuild a Java admin dashboard with webforJ in pure Java
ArtikelJava framework for enterprise web applications: a checklist
ArtikelJmix alternative: plain Java and Spring Boot with webforJ