SpringSecurity interfaces

O Spring Security é um sub framework responsável por fazer a parte de segurança/autenticar usuários.

Para que ele possa fazer isso e o nosso projeto tenha o mecanismo de identificar os usuários e os seus perfis usando o framework, precisamos implementar algumas interfaces para que o Security as use, veja:

UserDetails - Tem as informações do usuário. Repare, nós possuímos o getAuthorities que, na verdade, é uma coleção da interface GrantedAuthority do lado.

GrantedAuthority - É onde as roles do usuário ficarão guardadas.

UserDetailsService - Passaremos um nome de usuário e será retornado um UserDetails.

E uma exceção para caso o usuário não seja encontrado.

Entidades que herdarão as interfaces

Os métodos serão implementados automaticamente.

Role ⇛ GrantedAuthority

User ⇛ UserDetails (lembrar de colocar os retornos nos métodos, se o email é o UserName, colocar o retorno etc)

UserService ⇛ UserDetailsService

Atualizado