Wiosenna ochrona

Wiosenna ochrona
Deweloperzy 4
Wersja stabilna
5.2.1 / 4 listopada 2019 r. ; 3 lata temu ( 2019-11-04 )
Napisane w Jawa
System operacyjny Międzyplatformowe
Typ bezpieczeństwo ram aplikacji internetowych
Licencja Licencja Apache 2.0
Strona internetowa projekty .spring .io /spring-security /

Spring Security to platforma Java / Java EE , która zapewnia uwierzytelnianie , autoryzację i inne funkcje bezpieczeństwa dla aplikacji korporacyjnych. Projekt rozpoczął się pod koniec 2003 roku jako „Acegi Security” (wymawiane Ah-see-gee / ɑː s / , którego litery to pierwszy, trzeci, piąty, siódmy i dziewiąty znak alfabetu angielskiego), aby zapobiegać konfliktom nazw) autorstwa Bena Alexa, który został udostępniony publicznie na licencji Apache w marcu 2004. Następnie Acegi zostało włączone do portfolio Spring jako Spring Security, oficjalny podprojekt Spring. Pierwszym publicznym wydaniem pod nową nazwą było Spring Security 2.0.0 w kwietniu 2008 r., z komercyjnym wsparciem i szkoleniami dostępnymi od SpringSource .

Przepływ uwierzytelniania

Diagram 1 przedstawia podstawowy przebieg żądania uwierzytelnienia przy użyciu systemu Spring Security. Pokazuje różne filtry i ich interakcje od początkowego żądania przeglądarki do pomyślnego uwierzytelnienia lub błędu HTTP 403.

ACEGI Authentication.JPG

Przeglądarka wysyła " poświadczenia uwierzytelniające "
" Mechanizm uwierzytelniania " zbiera szczegóły
Obiekt " żądania uwierzytelnienia " jest tworzony Żądanie
uwierzytelnienia wysyłane do menedżera uwierzytelniania
Menedżer uwierzytelniania (odpowiada za przekazywanie żądań przez łańcuch dostawców uwierzytelniania)
" Dostawca uwierzytelniania " zapyta usługę UserDetails zapewnić Obiekt UserDetails
Wynikowy obiekt UserDetails (który zawiera również GrantedAuthority[]s ) zostanie użyty do zbudowania w pełni wypełnionego obiektu Authentication .

Jeśli „ mechanizm uwierzytelniania otrzyma z powrotem w pełni wypełniony obiekt uwierzytelnienia , uzna żądanie za ważne, umieść uwierzytelnienie w SecurityContextHolder ; i spowodować ponowienie pierwotnego żądania. Jeżeli z drugiej strony AuthenticationProvider odrzucił żądanie, mechanizm uwierzytelniania poprosi agenta użytkownika o ponowienie próby.
AbstractSecurityInterceptor autoryzuje zregenerowane żądanie i zgłasza wyjątki Java. (Pytuje AccessDecisionManager o decyzję.)
ExceptionTranslationFilter tłumaczy wyjątki zgłaszane przez AbstractSecurityInterceptor na kody błędów związane z HTTP

Kod błędu 403 – jeśli podmiot zabezpieczeń został uwierzytelniony i dlatego po prostu nie ma wystarczającego dostępu Uruchom AuthenticationEntryPoint – jeśli zleceniodawca nie został uwierzytelniony, co jest mechanizmem uwierzytelniającym

Kluczowe funkcje uwierzytelniania

Kluczowe funkcje autoryzacji

Funkcje bezpieczeństwa oparte na instancjach

Inne funkcje

Wydania

  • 2.0.0 (kwiecień 2008)
  • 3.0.0 (grudzień 2009)
  • 3.1.0 (7 grudnia 2011)
  • 3.1.2 (10 sierpnia 2012)
  • 3.2.0 (16 grudnia 2013)
  • 4.0.0 (26 marca 2015)
  • 4.1.3 (24 sierpnia 2016)
  • 4.2.0 (10 listopada 2016)
  • 3.2.10, 4.1.4, 4.2.1 (22 grudnia 2016 r.)
  • 4.2.2 (2 marca 2017)
  • 4.2.3 (8 czerwca 2017)
  • 5.0.0 (28 listopada 2017)
  • 5.0.8, 4.2.8 (11 września 2018)
  • 5.1.0 GA (27 września 2018 r.)
  • 5.1.1, 5.0.9, 4.2.9 (16 października 2018 r.)
  • 5.1.2, 5.0.10, 4.2.10 (29 listopada 2018 r.)
  • 5.1.3, 5.0.11, 4.2.11 (11 stycznia 2019 r.)
  • 5.1.4 (14 lutego 2019)
  • 5.1.5, 5.0.12, 4.2.12 (3 kwietnia 2019 r.)

Linki zewnętrzne