Spring Boot

Autenticación y autorización avanzadas

Autenticación avanzada, autorización detallada con @PreAuthorize/@PostAuthorize, roles, permisos, SpEL

30 preguntas de entrevista·
Senior
1

¿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+?

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?

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.

4

¿Cuál es la diferencia principal entre hasRole() y hasAuthority() en Spring Security?

5

¿Cómo implementar un UserDetailsService personalizado que cargue usuarios desde una base de datos?

+27 preguntas de entrevista

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