Zaawansowane uwierzytelnianie i autoryzacja
Zaawansowane uwierzytelnianie, szczegółowa autoryzacja z @PreAuthorize/@PostAuthorize, roles, permissions, SpEL
1Jaka jest główna rola interfejsu UserDetailsService w Spring Security?
Jaka jest główna rola interfejsu UserDetailsService w Spring Security?
Odpowiedź
UserDetailsService odpowiada za ładowanie informacji o użytkowniku ze źródła danych (baza danych, LDAP itp.) podczas uwierzytelniania. Jego metoda loadUserByUsername() zwraca obiekt UserDetails zawierający username, password, roles i authorities. Spring Security wykorzystuje następnie te informacje do walidacji credentials i zbudowania SecurityContext.
2Która adnotacja włącza zabezpieczenia na poziomie metod w Spring Security 6+?
Która adnotacja włącza zabezpieczenia na poziomie metod w Spring Security 6+?
Odpowiedź
@EnableMethodSecurity to nowoczesna adnotacja w Spring Security 6+, która włącza zabezpieczenia na poziomie metod. Zastępuje starą @EnableGlobalMethodSecurity i domyślnie włącza @PreAuthorize, @PostAuthorize oraz @Secured. Wykorzystuje konfigurację opartą na proxy AOP do przechwytywania wywołań metod i sprawdzania autoryzacji.
3W którym momencie adnotacja @PreAuthorize sprawdza autoryzacje?
W którym momencie adnotacja @PreAuthorize sprawdza autoryzacje?
Odpowiedź
@PreAuthorize sprawdza autoryzacje PRZED wykonaniem metody. Jeśli warunek SpEL zwróci false, zostaje rzucony AccessDeniedException, a metoda nigdy nie jest wykonywana. Zapobiega to dostępowi do nieautoryzowanych zasobów już na samym początku. W przeciwieństwie do tego @PostAuthorize sprawdza po wykonaniu, co jest przydatne do filtrowania wyników w zależności od użytkownika.
Jaka jest główna różnica między hasRole() a hasAuthority() w Spring Security?
Jak zaimplementować niestandardowy UserDetailsService, który ładuje użytkowników z bazy danych?
+27 pytań z rozmów
Inne tematy rekrutacyjne Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logowanie z SLF4J i Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Obsługa wyjątków
Bean Validation
Podstawy Spring Data JPA
Encje JPA i relacje
Zapytania JPA
Spring Data Repositories
Podstawy Spring Security
Spring Boot Actuator
Testy jednostkowe z JUnit i Mockito
Testowanie Spring Boot
Profiles i Environment
RestTemplate i WebClient
Async i Scheduling
Caching ze Spring
Spring WebFlux (Reactive)
Transakcje Spring
JWT i bezpieczeństwo stateless
OAuth2 i Authorization Server
Spring Boot i Docker
Microservices ze Spring
Spring Cloud Config
Optymalizacja wydajności
GraalVM Native Images
Opanuj Spring Boot na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo