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 route-niveau toegangscontrole te bieden. Deze interfaces definiëren de contracten voor beveiligingsgedrag, waardoor verschillende implementaties, of ze nu op sessies zijn gebaseerd, gebaseerd zijn op JSON Web Tokens (JWT), LDAP-geïntegreerd of database-ondersteund, kunnen aansluiten op hetzelfde onderliggende framework.
📄️ 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 ofwel de voortgang van de navigatie toe of leidt de gebruiker om 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 evaluators die routes onderzoeken en toegang besluiten nemen met behulp van het chain of responsibility-ontwerppatroon. Begrijpen hoe de keten werkt, helpt je om aangepaste evaluators te maken en onverwachte toegang weigeringen op te lossen.
📄️ Custom Implementation Example
Deze gids begeleidt je bij het bouwen van een volledige aangepaste beveiligingsimplementatie met behulp van sessiegebaseerde authenticatie. Je leert hoe de vier kerninterfaces samenwerken door ze vanaf nul te implementeren.