Beveiligingsarchitectuur 25.10
Het webforJ-beveiligingssysteem is gebouwd op een fundament van interfaces en ontwerppatronen die flexibele, uitbreidbare routebescherming mogelijk maken. Deze sectie legt uit hoe het fundamentele beveiligingskader functioneert en hoe je op maat gemaakte beveiligingsoplossingen kunt bouwen door deze interfaces te implementeren.
De meeste applicaties zouden de Spring Security-integratie moeten gebruiken, aangezien dit alles automatisch voor je configureert. Implementeer alleen aangepaste beveiliging als je specifieke vereisten hebt of als je geen gebruikmaakt van Spring Boot. De Spring-integratie is gebouwd op dezelfde fundamentele architectuur.
Je leert over de kerninterfaces, het evaluator-ketenspatroon, hoe navigatie wordt onderschept en geëvalueerd, en verschillende benaderingen voor het opslaan van authenticatiestatus.
Deze gidsen leggen de fundamentele architectuur en uitbreidingspunten uit, de interfaces die je implementeert en hoe ze samenwerken. Voorbeeldcode laat één mogelijke benadering zien, geen voorschrijvende vereisten. Jouw implementatie kan verschillende opslagmechanismen gebruiken (JWT, database, LDAP), verschillende bedradingpatronen of verschillende authenticatiestromen op basis van jouw behoeften.
Wat je zult leren
- Fundamentele architectuur: De kerninterfaces die beveiligingsgedrag definiëren en hoe ze samenwerken
- Navigatie-onderschepping: Hoe het beveiligingssysteem navigatieverzoeken onderschept en toegangsregels evalueert
- Evaluator-ketenspatroon: Hoe beveiligingsregels in volgorde van prioriteit worden geëvalueerd met behulp van het keten van verantwoordelijkheidspatroon
- Authenticatieopslag: Verschillende benaderingen voor het opslaan van de authenticatiestatus van de gebruiker (sessies, JWT, database, enz.)
- Volledige implementatie: Een werkend voorbeeld dat alle componenten samenbrengt
Voor wie dit bedoeld is
Deze gidsen zijn voor ontwikkelaars die willen:
- Aangepaste beveiligingsimplementaties bouwen voor niet-Spring-applicaties
- De fundamentele architectuur begrijpen om problemen op te lossen
- Aangepaste authenticatiestromen of autorisatielogica implementeren
- Beveiligingsevaluators creëren met domeinspecifieke logica
- Integreren met bestaande authenticatiesystemen (LDAP, OAuth, aangepaste backend)
Vereisten
Voordat je in deze gidsen duikt, zou je moeten:
- De Getting Started-gids hebben voltooid om beveiligingsconcepten te begrijpen
- Beveiligingsannotaties begrijpen vanuit de Annotaties-gids
- Bekend zijn met het keten van verantwoordelijkheid ontwerppatroon
- Ervaring hebben met Java-interfaces en erfelijkheid
Onderwerpen
📄️ Foundational Architecture
Het webforJ-beveiligingssysteem is gebouwd op een fundament van kerninterfaces die samenwerken om toegangscontrole op route-niveau te bieden. Deze interfaces definiëren de contracten voor beveiligingsgedrag, waardoor verschillende implementaties, of ze nu op sessies zijn gebaseerd, op JSON Web Tokens (JWT), LDAP-geïntegreerd of database-ondersteund zijn, in hetzelfde onderliggende framework kunnen worden geïntegreerd.
📄️ Navigation Flow
Beveiligingshandhaving in webforJ gebeurt automatisch tijdens navigatie. Wanneer een gebruiker op een link klikt of naar een route navigeert, onderschept het beveiligingssysteem de navigatie, evalueert het toegangsregels en staat het ofwel de navigatie toe om door te gaan of wordt de gebruiker omgeleid naar een geschikte pagina. Deze onderschepping is onzichtbaar voor gebruikers en vereist geen handmatige beveiligingscontroles in uw componentcode.
📄️ Evaluator Chain
De evaluator-keten is het hart van het beveiligingssysteem van webforJ. Het is een prioriteitsgeordende reeks evaluatoren die routes onderzoeken en toegang beslissingen nemen met behulp van het chain of responsibility ontwerppatroon. Door te begrijpen hoe de keten werkt, kun je aangepaste evaluatoren maken en onverwachte toegang weigeringen oplossen.
📄️ Custom Implementation Example
Deze gids behandelt het bouwen van een complete aangepaste beveiligingsimplementatie met op sessies gebaseerde authenticatie. Je leert hoe de vier kerninterfaces samenwerken door ze vanaf nul te implementeren.