Jarní bezpečnost - Spring Security
Vývojáři | 4 |
---|---|
Stabilní uvolnění | 5.2.1 / 4. listopadu 2019[1] |
Napsáno | Jáva |
Operační systém | Cross-platform |
Typ | rámec webových aplikací bezpečnostní |
Licence | Licence Apache 2.0 |
webová stránka | projekty |
Jarní bezpečnost je Jáva /Java EE rámec, který poskytuje ověřování, oprávnění a další funkce zabezpečení pro podnikové aplikace. Projekt byl zahájen koncem roku 2003 jako „Acegi Security“ (vyslovováno Ah-see-gee /ɑːsiːdʒiː/, jehož písmena jsou první, třetí, pátý a sedmý znak anglické abecedy, aby se zabránilo konfliktům jmen[2]) Ben Alex, s tím, že byl veřejně vydán pod Licence Apache v březnu 2004. Následně byla Acegi začleněna do Jaro portfolio jako Spring Security, oficiální jarní dílčí projekt. První veřejné vydání pod novým názvem bylo Spring Security 2.0.0 v dubnu 2008, s komerční podporou a školením k dispozici od SpringSource.
Tok autentizace
Diagram 1 ukazuje základní tok požadavku na autentizaci pomocí systému Spring Security. Zobrazuje různé filtry a jejich interakci od počátečního požadavku prohlížeče až po úspěšné ověření nebo chybu HTTP 403.
Odeslání prohlížeče "přihlašovací údaje" | |
"Mechanismus ověřování" shromažďuje podrobnosti | |
An "požadavek na ověření" objekt je postaven | |
Žádost o ověření odesláno do AuthenticationManageru | |
AuthenticationManager (to je zodpovědné za předávání žádostí prostřednictvím řetězce AuthenticationProviders ') | |
"Poskytovatel autentizace"zeptá se UserDetailsService poskytnout a UserDetails objekt | |
Výsledek UserDetails objekt (který také obsahuje GrantedAuthority [] s) bude použit k vytvoření plně obydlených Ověření objekt. | |
Pokud "Mechanismus ověřování" přijímá zpět plně osídlené Ověření objekt, bude považovat požadavek za platný, umístit Ověření do SecurityContextHolder; a způsobit opakování původního požadavku. Pokud naopak AuthenticationProvider odmítl požadavek, mechanismus ověřování požádá agenta uživatele o opakování. | |
AbstractSecurityInterceptor autorizuje regenerovaný požadavek a vyvolá výjimky Java. (Ptá se AccessDecisionManager k rozhodnutí.) | |
ExceptionTranslationFilter překládá výjimky vyvolané AbstractSecurityInterceptor do chybových kódů souvisejících s HTTP | |
Kód chyby 403 - pokud byl jistina ověřena, a proto jí prostě chybí dostatečný přístup Spusťte AuthenticationEntryPoint - pokud hlavní osoba nebyla ověřena, což je mechanismus ověřování |
Klíčové funkce ověřování
- LDAP (pomocí strategií porovnávání založených na vazbách i hesel) pro centralizaci autentizačních informací.
- Jednotné přihlášení možnosti využívající populární Centrální ověřovací služba.
- Služba Java Authentication and Authorization Service (JAAS) LoginModule, metoda založená na standardech pro autentizaci používaná v Javě. Tato funkce je pouze delegací na přihlašovací modul JAAS.
- Základní ověřování přístupu jak je definováno prostřednictvím RFC 1945.
- Digestní ověřování přístupu jak je definováno prostřednictvím RFC 2617 a RFC 2069.
- X.509 klientský certifikát prezentace přes internet Secure Sockets Layer Standard.
- CA, Inc. SiteMinder pro ověřování (populární komerční produkt pro správu přístupu).
- Su (Unix) podpora přepínání hlavní identity přes a HTTP nebo HTTPS spojení.
- Náhrada za běh, která umožňuje operaci převzít jinou identitu zabezpečení.
- Anonymní ověřování, což znamená, že i neověřeným objektům zabezpečení je přidělena identita zabezpečení.
- Podpora kontejnerového adaptéru (vlastní sféra) Apache Tomcat, Pryskyřice, JBoss a Jetty (webový server).
- Okna NTLM povolit integraci prohlížeče (experimentální).
- Ověřování pomocí webového formuláře, podobně jako servletová nádoba Specifikace.
- Podpora „Pamatuj si mě“ prostřednictvím HTTP cookies.
- Podpora souběžných relací, která omezuje počet simultánních přihlášení povolených principálem.
- Plná podpora přizpůsobení a připojení vlastních implementací ověřování.
Klíčové funkce autorizace
- AspectJ způsob vyvolání metody.
- HTTP autorizace webové žádosti URL pomocí volby z Apache Ant cesty nebo regulární výrazy.
Instalační funkce zabezpečení
- Používá se pro specifikaci seznamy řízení přístupu použitelné pro objekty domény.
- Spring Security nabízí úložiště pro ukládání, načítání a úpravy ACL v a databáze.
- Oprávnění jsou k dispozici funkce k vynucení zásad před a po vyvolání metod.
Další funkce
- Lokalizace softwaru tak uživatelské rozhraní zprávy mohou být v jakémkoli jazyce.
- Zabezpečení kanálu pro automatické přepínání mezi HTTP a HTTPS po splnění konkrétních pravidel.
- Ukládání do mezipaměti ve všech databázových oblastech rámce.
- Zveřejňování zpráv pro usnadnění programování řízené událostmi.
- Podpora provádění testování integrace prostřednictvím JUnit.
- Samotná jarní bezpečnost má komplexní JUnit izolační testy.
- Několik ukázkových aplikací, podrobně JavaDocs a referenční příručku.
- Nezávislost webového rámce.
Zprávy
- 2.0.0 (duben 2008)
- 3.0.0 (prosinec 2009)
- 3.1.0 (7. prosince 2011)
- 3.1.2 (10. srpna 2012)
- 3.2.0 (16. prosince 2013)
- 4.0.0 (26. března 2015)
- 4.1.3 (24. srpna 2016)
- 4.2.0 (10. listopadu 2016)
- 3.2.10, 4.1.4, 4.2.1 (22. prosince 2016)
- 4.2.2 (2. března 2017)
- 4.2.3 (8. června 2017)
- 5.0.0 (28. listopadu 2017)
- 5.0.8, 4.2.8 (11. září 2018)[3]
- 5.1.0 GA (27. září 2018)[4]
- 5.1.1, 5.0.9, 4.2.9 (16. října 2018)[5]
- 5.1.2, 5.0.10, 4.2.10 (29. listopadu 2018)[6]
- 5.1.3, 5.0.11, 4.2.11 (11. ledna 2019)[7]
- 5.1.4 (14. února 2019)[8]
- 5.1.5, 5.0.12, 4.2.12 (3. dubna 2019)[9]
Reference
- ^ „Vydáno jarní zabezpečení 5.2.1 a 5.1.7“. jaro.io. Citováno 4. prosince 2019.
- ^ „Proč jméno Acegi?“. jaro.io.
- ^ „Spring Security 5.0.8 and 4.2.8 Released“. jaro.io. Citováno 2019-06-09.
- ^ „Spring Security 5.1 goes GA“. jaro.io. Citováno 2019-06-09.
- ^ „Vydáno jarní zabezpečení 5.1.1, 5.0.9 a 4.2.9“. jaro.io. Citováno 2019-06-09.
- ^ „Jarní zabezpečení 5.1.2, 5.0.10, 4.2.10 vydáno“. jaro.io. Citováno 2019-06-09.
- ^ „Vydáno jarní zabezpečení 5.1.3, 5.0.11, 4.2.11“. jaro.io. Citováno 2019-06-09.
- ^ „Jarní zabezpečení 5.1.4 vydáno“. jaro.io. Citováno 2019-06-09.
- ^ „Jarní zabezpečení 5.1.5, 5.0.12, 4.2.12 vydáno“. jaro.io. Citováno 2019-06-09.