Zrozumienie łańcucha filtrów Spring Security
Zajrzyj pod maskę Spring Security 6, aby zrozumieć, jak łańcuch filtrów serwletów przetwarza każde żądanie i jaką rolę odgrywa w nim uwierzytelnianie.
Zrozumienie łańcucha filtrów Spring Security to bezpłatna lekcja Spring Security 6 & JWT Authentication na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Spring Security 6 & JWT Authentication, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Spring Security 6 & JWT Authentication zawiera 4 lekcji w sumie.
Jak zabezpieczane są żądania
Jak więc faktycznie sprawdzane jest każde żądanie? Łańcuch filtrów bezpieczeństwa — seria filtrów servletowych, które Spring umieszcza przed kontrolerami.
Czym jest filtr servletowy?
Servletowy filtr Filter przechwytuje żądania i odpowiedzi HTTP, zanim dotrą one do Państwa kodu. Spring Security jest niemal w całości zbudowany z takich filtrów.
DelegatingFilterProxy
Rzeczywisty filtr servletowy, DelegatingFilterProxy, przekazuje każde żądanie do beana zarządzanego przez Spring — łącząc świat servletów z kontekstem Spring.
FilterChainProxy
Za tym proxy znajduje się FilterChainProxy, który przechowuje co najmniej jedną instancję SecurityFilterChain i kieruje każde żądanie do tej, która pasuje.
Najważniejsze filtry w kolejności działania
Filtry są uruchamiane w ustalonej kolejności: SecurityContextHolderFilter ładuje kontekst, filtr uwierzytelniania obsługuje logowanie, a AuthorizationFilter egzekwuje reguły dostępu.
Definiowanie beana SecurityFilterChain
W Spring Security 6 całą konfigurację definiuje się przez zadeklarowanie beana SecurityFilterChain — nowoczesnego zastępstwa dla WebSecurityConfigurerAdapter. Szczegóły znajdują się poniżej.
@Bean
SecurityFilterChain chain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(a -> a.anyRequest().authenticated())
.formLogin(Customizer.withDefaults());
return http.build();
}Gdzie znajduje się SecurityContext
Po zalogowaniu obiekt Authentication jest przechowywany w SecurityContext i pozostaje dostępny za pośrednictwem SecurityContextHolder przez resztę żądania.
Authentication auth = SecurityContextHolder.getContext().getAuthentication();Zezwalanie na dostęp do wybranych ścieżek
Można przepuszczać publiczne ścieżki, jednocześnie zabezpieczając pozostałe — wszystko w ramach tego samego łańcucha. Kod używa permitAll() dla /public oraz authenticated() dla wszystkich pozostałych ścieżek.
http.authorizeHttpRequests(a -> a
.requestMatchers('/public/**').permitAll()
.anyRequest().authenticated());Wiele łańcuchów filtrów
Można zarejestrować kilka beanów SecurityFilterChain z użyciem securityMatcher, aby ścieżki API i aplikacji internetowej miały różne reguły. Wygrywa pierwszy pasujący łańcuch.
http.securityMatcher('/api/**');Dodawanie własnego filtra
Własny filtr można umieścić w dokładnie określonym miejscu za pomocą addFilterBefore — jest to podstawa przetwarzania JWT, które zostanie zbudowane później w tym kursie.
http.addFilterBefore(myFilter, UsernamePasswordAuthenticationFilter.class);Dlaczego ma to znaczenie
Znajomość łańcucha wyjaśnia, dlaczego kolejność ma znaczenie, gdzie odbywa się uwierzytelnianie i autoryzacja oraz dokładnie w którym miejscu należy podłączyć własny filtr JWT.
Szybkie sprawdzenie
Jak w Spring Security 6 definiuje się konfigurację zabezpieczeń?
Podsumowanie
Podsumowanie: żądania przepływają od DelegatingFilterProxy przez FilterChainProxy do SecurityFilterChain; filtry są uruchamiane w kolejności — najpierw uwierzytelnianie, potem autoryzacja — a addFilterBefore wstawia własne filtry.
Ucz się Java dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 12
- Lekcje
- 48
Często zadawane pytania
Czy lekcja „Zrozumienie łańcucha filtrów Spring Security” jest bezpłatna?
Tak — pełny tekst „Zrozumienie łańcucha filtrów Spring Security” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Spring Security 6 & JWT Authentication, przejdź na CoddyKit PRO. Kurs Spring Security 6 & JWT Authentication zawiera 4 lekcji w sumie.
Co nauczysz się w „Zrozumienie łańcucha filtrów Spring Security”?
Zajrzyj pod maskę Spring Security 6, aby zrozumieć, jak łańcuch filtrów serwletów przetwarza każde żądanie i jaką rolę odgrywa w nim uwierzytelnianie. Ćwiczysz Spring Security 6 & JWT Authentication z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Spring Security 6 & JWT Authentication?
Nie wymagamy żadnego doświadczenia. Spring Security 6 & JWT Authentication w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Zrozumienie łańcucha filtrów Spring Security”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Spring Security 6 & JWT Authentication?
Tak. Każda lekcja Spring Security 6 & JWT Authentication zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wprowadzenie do Spring Security 6
- Konfiguracja projektu i zależności
- Uwierzytelnianie użytkowników w pamięci
- Zrozumienie łańcucha filtrów Spring Security