Spring Boot

Zaawansowane uwierzytelnianie i autoryzacja

Zaawansowane uwierzytelnianie, szczegółowa autoryzacja z @PreAuthorize/@PostAuthorize, roles, permissions, SpEL

30 pytań z rozmów·
Senior
1

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.

2

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.

3

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.

4

Jaka jest główna różnica między hasRole() a hasAuthority() w Spring Security?

5

Jak zaimplementować niestandardowy UserDetailsService, który ładuje użytkowników z bazy danych?

+27 pytań z rozmów

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