Authentification et autorisation avancées
Authentification avancée, autorisation fine avec @PreAuthorize/@PostAuthorize, roles, permissions, SpEL
1Quel est le rôle principal de l'interface UserDetailsService dans Spring Security ?
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.
2Quelle annotation permet d'activer la sécurité au niveau des méthodes dans Spring Security 6+ ?
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 ?
À 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.
Quelle est la différence principale entre hasRole() et hasAuthority() dans Spring Security ?
Comment implémenter une UserDetailsService personnalisée qui charge les utilisateurs depuis une base de données ?
+27 questions d'entretien
Autres sujets d'entretien Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging avec SLF4J et Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Gestion des exceptions
Validation avec Bean Validation
Spring Data JPA - Les bases
Entités JPA et relations
Requêtes JPA
Spring Data Repositories
Spring Security - Les bases
Spring Boot Actuator
Tests unitaires avec JUnit et Mockito
Tests Spring Boot
Profiles et Environment
RestTemplate et WebClient
Async et Scheduling
Caching avec Spring
Spring WebFlux (Reactive)
Transactions Spring
JWT et sécurité stateless
OAuth2 et Authorization Server
Spring Boot et Docker
Microservices avec Spring
Spring Cloud Config
Optimisation des performances
GraalVM Native Images
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