Turvallisuusarkkitehtuuri 25.10
webforJ:n turvallisuusjärjestelmä perustuu rajapintojen ja suunnittelumallien perusteelle, jotka mahdollistavat joustavan ja laajennettavan reitin suojaamisen. Tässä osiossa selitetään, kuinka perustavanlaatuinen turvallisuuskehys toimii ja kuinka voit rakentaa räätälöityjä turvallisuusratkaisuja toteuttamalla näitä rajapintoja.
Suurimman osan sovelluksista tulisi käyttää Spring Security -integraatiota, koska se konfiguroi kaiken tämän automaattisesti puolestasi. Implementoi räätälöity turvallisuus vain, jos sinulla on erityisiä vaatimuksia tai et käytä Spring Bootia. Spring-integraatio perustuu tähän samaan perustavanlaatuiseen arkkitehtuuriin.
Opit ydinarajapinnat, evaluatoriketjun mallin, kuinka navigointi poistetaan käytöstä ja arvioidaan, sekä erilaisten lähestymistapojen tallentamiseen liittyvän autentikointitilan.
Nämä oppaat selittävät perustavanlaatuisen arkkitehtuurin ja laajennuskohtia, toteuttamasi rajapinnat ja kuinka ne toimivat yhdessä. Koodiesimerkit näyttävät yhden mahdollisen lähestymistavan, eivätkä ne ole määrättyjä vaatimuksia. Toteutuksesi voi käyttää erilaisia tallennusmekanismeja (JWT, tietokanta, LDAP), erilaisia kytkentämalleja tai erilaisia autentikointivirtoja tarpeidesi mukaan.
Mitä opit
- Perustavanlaatuinen arkkitehtuuri: Ydinarajapinnat, jotka määrittävät turvallisuuskäyttäytymisen ja kuinka ne toimivat yhdessä
- Navigoinnin poistaminen käytöstä: Kuinka turvallisuusjärjestelmä keskeyttää navigointipyyntöjä ja arvioi käyttöoikeussäännöt
- Evaluatoriketjun malli: Kuinka turvallisuussäännöt arvioidaan prioriteettijärjestyksessä vastuuketjumallin avulla
- Autentikoinnin tallennus: Eri lähestymistavat käyttäjäautentikointitilan tallentamiseen (istunnot, JWT, tietokanta jne.)
- Täydellinen toteutus: Toimiva esimerkki, jossa kaikki komponentit on kytketty yhteen
Kenelle tämä on tarkoitettu
Nämä oppaat on tarkoitettu kehittäjille, jotka haluavat:
- Rakentaa mukautettuja turvallisuusratkaisuja ei-Spring-sovelluksille
- Ymmärtää perustavanlaatuinen arkkitehtuuri ongelmien ratkaisemiseksi
- Toteuttaa mukautettuja autentikointivirtoja tai valtuutuksen logiikkaa
- Luoda turvallisuusevaluattoreita, joilla on alan erityisiä logiikoita
- Integroitu olemassa oleviin autentikointijärjestelmiin (LDAP, OAuth, mukautetut taustat)
Esivaatimukset
Ennen kuin sukellat näihin oppaisiin, sinun tulisi:
- Suorittaa Aloitusopas ymmärtääksesi turvallisuuskäsitteet
- Ymmärtää turvallisuusannotat Alueoppaasta](/docs/security/annotations)
- Tuntemus vastuuketjumallista
- Olla kokemusta Java-rajapinnoista ja perinnöstä
Aiheet
Perusarkkitehtuuri
webforJ -turvajärjestelmä perustuu ydinliittymien perusrakenteeseen, joka toimii yhdessä tarjotakseen reittikohtaista pääsynvalvontaa. Nämä liittymät määrittelevät turvallisuuskäyttäytymiseen liittyvät sopimukset, jolloin erilaiset toteutukset, olivatpa ne istuntopohjaisia, JSON Web Tokeneihin (JWT) perustuvia, LDAP-integroituja tai tietokantapohjaisia, voivat liittää samaan perustavaan kehykseen.
Navigointivirta
Trace how RouteSecurityObserver intercepts navigation, runs evaluators, and redirects users before any view renders.
Arvioijaketju
Evaluointiketju on webforJ:n tietoturvajärjestelmän sydän. Se on priorisoitu arvioijien sekvenssi, joka tutkii reittejä ja tekee pääsypäätöksiä vastuuketjun suunnittelumallin avulla. Ymmärtämällä, miten ketju toimii, voit luoda mukautettuja arvioijia ja ratkaista odottamattomia pääsyn evätyksiä.
Mukautetun toteutuksen esimerkki
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.
Jatka oppimista
ArtikkeliSpring Security role-based UI access: why protecting routes beats hiding elements
ArtikkeliSecuring webforJ Routes Before the View Exists
ArtikkeliSecure Java web framework for enterprise teams
ArtikkeliBuild a Java admin dashboard with webforJ in pure Java
ArtikkeliJava framework for enterprise web applications: a checklist
ArtikkeliJmix alternative: plain Java and Spring Boot with webforJ