Forårssikkerhed - Spring Security
| Udvikler (r) | 4 |
|---|---|
| Stabil frigivelse | 5.2.1 / 4. november 2019 |
| Skrevet i | Java |
| Operativ system | Tværplatform |
| Type | webapplikationsframework sikkerhed |
| Licens | Apache-licens 2.0 |
| Internet side | projekter |
Spring Security er en Java / Java EE- ramme, der giver godkendelse , autorisation og andre sikkerhedsfunktioner til virksomhedsapplikationer. Projektet blev startet i slutningen af 2003 som 'Acegi Security' (udtalt Ah-see-gee / ɑː s iː dʒ iː / , hvis bogstaver er de første, tredje, femte, syvende og niende tegn fra det engelske alfabet for at forhindre navnekonflikter) af Ben Alex, hvor det offentliggøres under Apache-licensen i marts 2004. Derefter blev Acegi indarbejdet i Spring- porteføljen som Spring Security, et officielt Spring-underprojekt. Den første offentlige udgivelse under det nye navn var Spring Security 2.0.0 i april 2008 med kommerciel support og træning tilgængelig fra SpringSource .
Godkendelsesflow
Diagram 1 viser den grundlæggende strøm af en godkendelsesanmodning ved hjælp af Spring Security-systemet. Det viser de forskellige filtre, og hvordan de interagerer fra den indledende browseranmodning til enten en vellykket godkendelse eller en HTTP 403-fejl.
| Browser indsender " godkendelsesoplysninger " | |
| " Godkendelsesmekanisme " samler detaljerne | |
| Der oprettes et " godkendelsesanmodning " -objekt | |
| Godkendelsesanmodning sendt til en AuthenticationManager | |
| AuthenticationManager (dette er ansvarlig for at sende anmodninger gennem en kæde af AuthenticationProviders ') | |
| " Godkendelsesudbyder " vil bede en UserDetailsService om at levere et UserDetails- objekt | |
| Det resulterende UserDetails- objekt (som også indeholder GrantedAuthority [] s ) bruges til at opbygge det fuldt udfyldte godkendelsesobjekt . | |
| Hvis " Godkendelsesmekanisme " modtager det fuldt udfyldte godkendelsesobjekt , vil det betragte anmodningen som gyldig, læg godkendelsen i SecurityContextHolder ; og få den oprindelige anmodning til at blive prøvet igen. Hvis AuthenticationProvider på den anden side afviste anmodningen, beder godkendelsesmekanismen brugeragenten om at prøve igen. |
|
| AbstractSecurityInterceptor godkender den regenererede anmodning og kaster Java-undtagelser. (Anmoder AccessDecisionManager om beslutning). | |
| ExceptionTranslationFilter oversætter undtagelserne fra AbstractSecurityInterceptor til HTTP-relaterede fejlkoder | |
| Fejlkode 403 - hvis hovedmanden er godkendt og derfor simpelthen mangler tilstrækkelig adgang Start en godkendelsesEntryPoint - hvis hovedmanden ikke er godkendt, hvilket er en godkendelsesmekanisme |
|
Nøglefunktioner til godkendelse
- LDAP (ved hjælp af både bindings- og adgangskodesammenligningsstrategier) til centralisering af godkendelsesoplysninger.
- Single sign-on- funktioner ved hjælp af den populære Central Authentication Service .
- Java Authentication and Authorization Service (JAAS) LoginModule, en standardbaseret metode til godkendelse anvendt i Java. Bemærk, at denne funktion kun er en delegation til en JAAS-loginmodul.
- Grundlæggende adgangsgodkendelse som defineret gennem RFC 1945 .
- Fordøj adgangsgodkendelse som defineret gennem RFC 2617 og RFC 2069 .
- X.509 klientcertifikatpræsentation over Secure Sockets Layer- standarden.
- CA, Inc SiteMinder til godkendelse (et populært kommercielt adgangsstyringsprodukt).
- Su (Unix) -lignende understøttelse til at skifte hovedidentitet over en HTTP- eller HTTPS- forbindelse.
- Kør som udskiftning, som gør det muligt for en operation at antage en anden sikkerhedsidentitet.
- Anonym godkendelse, hvilket betyder, at selv uautoriserede hovedpersoner tildeles en sikkerhedsidentitet.
- Containeradapter (brugerdefineret realm) understøtter Apache Tomcat , Resin , JBoss og Jetty (webserver) .
- Windows NTLM for at aktivere browserintegration (eksperimentel).
- Webformulargodkendelse svarende til servletcontainerspecifikationen .
- "Husk mig" support via HTTP-cookies .
- Samtidig session support, som begrænser antallet af samtidige login tilladt af en hovedstol.
- Fuld support til tilpasning og tilslutning af brugerdefinerede godkendelsesimplementeringer.
Nøglefunktioner til autorisation
- AspectJ- metode påkaldelsesautorisation
- HTTP- godkendelse af web-anmodnings- URL'er ved hjælp af et valg af Apache Ant- stier eller regulære udtryk .
Instansbaserede sikkerhedsfunktioner
- Bruges til at specificere adgangskontrolister, der gælder for domæneobjekter .
- Spring Security tilbyder et lager til lagring, hentning og ændring af ACL'er i en database .
- Autorisationsfunktioner leveres til at håndhæve politikker før og efter metodeopkald.
Andre funktioner
- Softwarelokalisering, så brugerinterfacemeddelelser kan være på ethvert sprog.
- Kanalsikkerhed for automatisk at skifte mellem HTTP og HTTPS efter opfyldelse af bestemte regler.
- Cache i alle områder, der rører ved databasen.
- Offentliggørelse af meddelelser for at lette begivenhedsdrevet programmering .
- Støtte til at udføre integrationstest via JUnit .
- Spring Security selv har omfattende JUnit- isolationstest.
- Flere eksempler på applikationer, detaljerede JavaDocs og en referencevejledning.
- Web ramme uafhængighed.
Udgivelser
- 2.0.0 (april 2008)
- 3.0.0 (december 2009)
- 3.1.0 (7. december 2011)
- 3.1.2 (10. august 2012)
- 3.2.0 (16. december 2013)
- 4.0.0 (26. marts 2015)
- 4.1.3 (24. august 2016)
- 4.2.0 (10. november 2016)
- 3.2.10, 4.1.4, 4.2.1 (22. december 2016)
- 4.2.2 (2. marts 2017)
- 4.2.3 (8. juni 2017)
- 5.0.0 (28. november 2017)
- 5.0.8, 4.2.8 (11. september 2018)
- 5.1.0 GA (27. september 2018)
- 5.1.1, 5.0.9, 4.2.9 (16. oktober 2018)
- 5.1.2, 5.0.10, 4.2.10 (29. november 2018)
- 5.1.3, 5.0.11, 4.2.11 (11. januar 2019)
- 5.1.4 (14. februar 2019)
- 5.1.5, 5.0.12, 4.2.12 (3. april 2019)