Spring Boot

Autenticação e autorização avançadas

Autenticação avançada, autorização detalhada com @PreAuthorize/@PostAuthorize, roles, permissões, SpEL

30 perguntas de entrevista·
Senior
1

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.

2

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.

3

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.

4

Qual é a diferença principal entre hasRole() e hasAuthority() no Spring Security?

5

Como implementar um UserDetailsService personalizado que carrega usuários de um banco de dados?

+27 perguntas de entrevista

Domine Spring Boot para sua proxima entrevista

Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.

Comece gratis