Autenticazione e autorizzazione avanzate
Autenticazione avanzata, autorizzazione granulare con @PreAuthorize/@PostAuthorize, roles, permissions, SpEL
1Qual è il ruolo principale dell'interfaccia UserDetailsService in Spring Security?
Qual è il ruolo principale dell'interfaccia UserDetailsService in Spring Security?
Risposta
UserDetailsService è responsabile del caricamento delle informazioni dell'utente dalla sorgente dati (database, LDAP, ecc.) durante l'autenticazione. Il suo metodo loadUserByUsername() restituisce un oggetto UserDetails contenente username, password, roles e authorities. Spring Security utilizza poi queste informazioni per validare le credenziali e costruire il SecurityContext.
2Quale annotazione abilita la sicurezza a livello di metodi in Spring Security 6+?
Quale annotazione abilita la sicurezza a livello di metodi in Spring Security 6+?
Risposta
@EnableMethodSecurity è l'annotazione moderna in Spring Security 6+ che abilita la sicurezza a livello di metodi. Sostituisce la vecchia @EnableGlobalMethodSecurity e abilita per impostazione predefinita @PreAuthorize, @PostAuthorize e @Secured. Utilizza una configurazione basata su proxy AOP per intercettare le chiamate ai metodi e verificare le autorizzazioni.
3In quale momento l'annotazione @PreAuthorize verifica le autorizzazioni?
In quale momento l'annotazione @PreAuthorize verifica le autorizzazioni?
Risposta
@PreAuthorize verifica le autorizzazioni PRIMA dell'esecuzione del metodo. Se la condizione SpEL restituisce false, viene lanciata una AccessDeniedException e il metodo non viene mai eseguito. Questo impedisce l'accesso alle risorse non autorizzate fin dall'inizio. Al contrario, @PostAuthorize verifica dopo l'esecuzione, il che è utile per filtrare i risultati in base all'utente.
Qual è la differenza principale tra hasRole() e hasAuthority() in Spring Security?
Come implementare un UserDetailsService personalizzato che carica gli utenti da un database?
+27 domande da colloquio
Altri argomenti di colloquio Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging con SLF4J e Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Gestione delle eccezioni
Bean Validation
Fondamenti di Spring Data JPA
Entità JPA e relazioni
Query JPA
Spring Data Repositories
Fondamenti di Spring Security
Spring Boot Actuator
Test unitari con JUnit e Mockito
Testing in Spring Boot
Profiles e Environment
RestTemplate e WebClient
Async e Scheduling
Caching con Spring
Spring WebFlux (Reactive)
Transazioni Spring
JWT e sicurezza stateless
OAuth2 e Authorization Server
Spring Boot e Docker
Microservices con Spring
Spring Cloud Config
Ottimizzazione delle prestazioni
GraalVM Native Images
Padroneggia Spring Boot per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis