Spring Boot

Authentification et autorisation avancées

Authentification avancée, autorisation fine avec @PreAuthorize/@PostAuthorize, roles, permissions, SpEL

30 questions d'entretien·
Senior
1

Quel est le rôle principal de l'interface UserDetailsService dans Spring Security ?

Réponse

UserDetailsService est responsable de charger les informations utilisateur depuis la source de données (base de données, LDAP, etc.) lors de l'authentification. Sa méthode loadUserByUsername() retourne un objet UserDetails contenant le username, password, roles et authorities. Spring Security utilise ensuite ces informations pour valider les credentials et construire le SecurityContext.

2

Quelle annotation permet d'activer la sécurité au niveau des méthodes dans Spring Security 6+ ?

Réponse

@EnableMethodSecurity est l'annotation moderne dans Spring Security 6+ qui active la sécurité au niveau des méthodes. Elle remplace l'ancienne @EnableGlobalMethodSecurity et active par défaut @PreAuthorize, @PostAuthorize et @Secured. Elle utilise une configuration basée sur les proxies AOP pour intercepter les appels de méthodes et vérifier les autorisations.

3

À quel moment l'annotation @PreAuthorize vérifie-t-elle les autorisations ?

Réponse

@PreAuthorize vérifie les autorisations AVANT l'exécution de la méthode. Si la condition SpEL retourne false, une AccessDeniedException est levée et la méthode n'est jamais exécutée. Cela permet d'empêcher l'accès aux ressources non autorisées dès le début. À l'inverse, @PostAuthorize vérifie après l'exécution, ce qui est utile pour filtrer les résultats selon l'utilisateur.

4

Quelle est la différence principale entre hasRole() et hasAuthority() dans Spring Security ?

5

Comment implémenter une UserDetailsService personnalisée qui charge les utilisateurs depuis une base de données ?

+27 questions d'entretien

Maîtrise Spring Boot pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement