Autenticación y autorización avanzadas
Autenticación avanzada, autorización detallada con @PreAuthorize/@PostAuthorize, roles, permisos, SpEL
1¿Cuál es el rol principal de la interfaz UserDetailsService en Spring Security?
¿Cuál es el rol principal de la interfaz UserDetailsService en Spring Security?
Respuesta
UserDetailsService es responsable de cargar la información del usuario desde la fuente de datos (base de datos, LDAP, etc.) durante la autenticación. Su método loadUserByUsername() devuelve un objeto UserDetails que contiene el username, password, roles y authorities. Spring Security utiliza luego esta información para validar las credenciales y construir el SecurityContext.
2¿Qué anotación habilita la seguridad a nivel de métodos en Spring Security 6+?
¿Qué anotación habilita la seguridad a nivel de métodos en Spring Security 6+?
Respuesta
@EnableMethodSecurity es la anotación moderna en Spring Security 6+ que habilita la seguridad a nivel de métodos. Reemplaza a la antigua @EnableGlobalMethodSecurity y habilita por defecto @PreAuthorize, @PostAuthorize y @Secured. Utiliza una configuración basada en proxies AOP para interceptar las llamadas a métodos y verificar las autorizaciones.
3¿En qué momento la anotación @PreAuthorize verifica las autorizaciones?
¿En qué momento la anotación @PreAuthorize verifica las autorizaciones?
Respuesta
@PreAuthorize verifica las autorizaciones ANTES de la ejecución del método. Si la condición SpEL devuelve false, se lanza una AccessDeniedException y el método nunca se ejecuta. Esto permite impedir el acceso a los recursos no autorizados desde el principio. Por el contrario, @PostAuthorize verifica después de la ejecución, lo cual es útil para filtrar los resultados según el usuario.
¿Cuál es la diferencia principal entre hasRole() y hasAuthority() en Spring Security?
¿Cómo implementar un UserDetailsService personalizado que cargue usuarios desde una base de datos?
+27 preguntas de entrevista
Otros temas de entrevista Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging con SLF4J y Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Manejo de excepciones
Bean Validation
Fundamentos de Spring Data JPA
Entidades JPA y relaciones
Consultas JPA
Spring Data Repositories
Fundamentos de Spring Security
Spring Boot Actuator
Pruebas unitarias con JUnit y Mockito
Testing en Spring Boot
Profiles y Environment
RestTemplate y WebClient
Async y Scheduling
Caching con Spring
Spring WebFlux (Reactive)
Transacciones de Spring
JWT y seguridad stateless
OAuth2 y Authorization Server
Spring Boot y Docker
Microservices con Spring
Spring Cloud Config
Optimización del rendimiento
GraalVM Native Images
Domina Spring Boot para tu próxima entrevista
Accede a todas las preguntas, flashcards, tests técnicos, ejercicios de code review y simuladores de entrevista.
Empieza gratis