Zestawy rozmówBlog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2026 LetsGit.IT. Wszelkie prawa zastrzeżone.

LetsGit.IT/Kategorie/Spring
Springhard

Spring Security — gdzie dzieje się uwierzytelnianie/autoryzacja?

Tagi
#spring-security#filters#auth
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

Głównie w łańcuchu filtrów bezpieczeństwa, zanim request trafi do kontrolera. Filtry budują `SecurityContext` (authentication), a potem reguły autoryzacji decydują o dostępie (URL, method security itd.).

Odpowiedź zaawansowana

Głębiej

Spring Security stoi przed warstwą MVC jako łańcuch filtrów serwletowych (Security Filter Chain). Każdy request przechodzi przez filtry zanim trafi do kontrolera.

Uwierzytelnianie (authentication)

  • Filtr wyciąga dane uwierzytelniające (sesja, basic auth, JWT bearer itd.).
  • `AuthenticationManager` deleguje do `AuthenticationProvider`.
  • Po sukcesie obiekt `Authentication` trafia do `SecurityContextHolder`.

Autoryzacja (authorization)

Decyzje autoryzacyjne podejmowane są dla każdego requesta (czasem też per metoda) na podstawie:

  • reguł URL (`authorizeHttpRequests`) i/lub
  • zabezpieczeń metod (`@PreAuthorize`, `@PostAuthorize`).

Przykład

@Bean
SecurityFilterChain security(HttpSecurity http) throws Exception {
  return http
    .authorizeHttpRequests(a -> a
      .requestMatchers("/admin/**").hasRole("ADMIN")
      .anyRequest().authenticated())
    .build();
}

@PreAuthorize("hasRole('ADMIN')")
void deleteUser(long id) { /* ... */ }

Typowe pułapki

  • Założenie, że autoryzacja sprawdza się tylko przy logowaniu (sprawdza się per request / per metoda).
  • Niezrozumienie domyślnego CSRF w aplikacjach przeglądarkowych.

Powiązane pytania

Spring
SecurityContext w Spring Security — czemu auth może się „zgubić” w async kodzie?
#spring-security#securitycontext#threadlocal
Bezpieczeństwo
Pułapki JWT: kiedy używać JWT, a kiedy sesji po stronie serwera?
#jwt#sessions#auth
Next.js
Auth w Next.js App Router: jak zrobić go bezpiecznie i
  • Method security trzeba włączyć/ustawić (zależnie od wersji Spring Security).
  • SSR
    -friendly?
    #nextjs#auth#cookies
    Architektura
    Uwierzytelnianie vs autoryzacja — jaka jest różnica?
    #auth#authentication#authorization