Autenticação e autorização avançadas
Autenticação avançada, autorização detalhada com @PreAuthorize/@PostAuthorize, roles, permissões, SpEL
1Qual é o papel principal da interface UserDetailsService no Spring Security?
Qual é o papel principal da interface UserDetailsService no Spring Security?
Resposta
UserDetailsService é responsável por carregar as informações do usuário a partir da fonte de dados (banco de dados, LDAP, etc.) durante a autenticação. Seu método loadUserByUsername() retorna um objeto UserDetails contendo o username, password, roles e authorities. O Spring Security então usa essas informações para validar as credenciais e construir o SecurityContext.
2Qual anotação habilita a segurança em nível de métodos no Spring Security 6+?
Qual anotação habilita a segurança em nível de métodos no Spring Security 6+?
Resposta
@EnableMethodSecurity é a anotação moderna no Spring Security 6+ que habilita a segurança em nível de métodos. Ela substitui a antiga @EnableGlobalMethodSecurity e habilita por padrão @PreAuthorize, @PostAuthorize e @Secured. Ela usa uma configuração baseada em proxies AOP para interceptar as chamadas de métodos e verificar as autorizações.
3Em que momento a anotação @PreAuthorize verifica as autorizações?
Em que momento a anotação @PreAuthorize verifica as autorizações?
Resposta
@PreAuthorize verifica as autorizações ANTES da execução do método. Se a condição SpEL retornar false, uma AccessDeniedException é lançada e o método nunca é executado. Isso permite impedir o acesso a recursos não autorizados desde o início. Em contrapartida, @PostAuthorize verifica após a execução, o que é útil para filtrar os resultados de acordo com o usuário.
Qual é a diferença principal entre hasRole() e hasAuthority() no Spring Security?
Como implementar um UserDetailsService personalizado que carrega usuários de um banco de dados?
+27 perguntas de entrevista
Outros temas de entrevista Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging com SLF4J e Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Tratamento de exceções
Bean Validation
Fundamentos do Spring Data JPA
Entidades JPA e relacionamentos
Consultas JPA
Spring Data Repositories
Fundamentos do Spring Security
Spring Boot Actuator
Testes unitários com JUnit e Mockito
Testes no Spring Boot
Profiles e Environment
RestTemplate e WebClient
Async e Scheduling
Caching com Spring
Spring WebFlux (Reactive)
Transações do Spring
JWT e segurança stateless
OAuth2 e Authorization Server
Spring Boot e Docker
Microservices com Spring
Spring Cloud Config
Otimização de desempenho
GraalVM Native Images
Domine Spring Boot para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis