Wiosenne bezpieczeństwo - Spring Security

Wiosenne bezpieczeństwo
Deweloper (y) 4
Wersja stabilna
5.2.1 / 4 listopada 2019 r . ; 16 miesięcy temu  ( 04.11.2019 )
Napisane w Jawa
System operacyjny Wieloplatformowy
Rodzaj bezpieczeństwo struktury aplikacji internetowych
Licencja Licencja Apache 2.0
Stronie internetowej 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 Nazwa zapobieganie konfliktom) Ben Alex wraz z nim publicznie udostępniany na licencji Apache w marcu 2004. następnie Acegi została włączona do wiosennego portfelu jako wiosennym Bezpieczeństwa oficjalnego wiosennym podprojektu. Pierwszym publicznym wydaniem pod nową nazwą było Spring Security 2.0.0 w kwietniu 2008 roku, z komercyjnym wsparciem i szkoleniami dostępnymi w SpringSource .

Przepływ uwierzytelniania

Diagram 1 przedstawia podstawowy przepływ żądania uwierzytelnienia za pomocą systemu Spring Security. Pokazuje różne filtry i ich interakcję od początkowego żądania przeglądarki do pomyślnego uwierzytelnienia lub błędu HTTP 403.

Uwierzytelnianie ACEGI.JPG

Przeglądarka przesyła dane uwierzytelniające
Mechanizm uwierzytelniania zbiera szczegółowe informacje
Żądanie uwierzytelnienia obiekt jest zbudowany
Żądanie uwierzytelnienia wysłane do AuthenticationManager
AuthenticationManager (jest odpowiedzialny za przekazywanie żądań przez łańcuch AuthenticationProviders ')
Dostawca uwierzytelniania ” poprosi usługę UserDetailsService o udostępnienie obiektu UserDetails
Wynikowy obiekt UserDetails (który zawiera również GrantedAuthority [] s ) zostanie użyty do zbudowania w pełni wypełnionego obiektu uwierzytelniania .
Jeśli „ mechanizm uwierzytelniania otrzyma z powrotem w pełni wypełniony obiekt uwierzytelniania , uzna żądanie za prawidłowe, umieści uwierzytelnienie w SecurityContextHolder ; i spowodować ponowienie pierwotnego żądania.
Jeśli z drugiej strony AuthenticationProvider odrzucił żądanie, mechanizm uwierzytelniania poprosi agenta użytkownika o ponowienie.
AbstractSecurityInterceptor autoryzuje ponownie wygenerowane żądanie i zgłasza wyjątki Java. (Prosi 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 został uwierzytelniony i dlatego po prostu nie ma wystarczającego dostępu Uruchom AuthenticationEntryPoint - jeśli podmiot nie został uwierzytelniony, co jest mechanizmem uwierzytelniania

Kluczowe funkcje uwierzytelniania

Kluczowe funkcje autoryzacji

Funkcje zabezpieczeń 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 r.)
  • 4.2.0 (10 listopada 2016 r.)
  • 3.2.10, 4.1.4, 4.2.1 (22 grudnia 2016)
  • 4.2.2 (2 marca 2017 r.)
  • 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)
  • 5.1.1, 5.0.9, 4.2.9 (16 października 2018)
  • 5.1.2, 5.0.10, 4.2.10 (29 listopada 2018)
  • 5.1.3, 5.0.11, 4.2.11 (11 stycznia 2019)
  • 5.1.4 (14 lutego 2019)
  • 5.1.5, 5.0.12, 4.2.12 (3 kwietnia 2019)

Bibliografia

Zewnętrzne linki