Spring Boot

Autenticazione e autorizzazione avanzate

Autenticazione avanzata, autorizzazione granulare con @PreAuthorize/@PostAuthorize, roles, permissions, SpEL

30 domande da colloquio·
Senior
1

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.

2

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.

3

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.

4

Qual è la differenza principale tra hasRole() e hasAuthority() in Spring Security?

5

Come implementare un UserDetailsService personalizzato che carica gli utenti da un database?

+27 domande da colloquio

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