Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

quando autentica usuário, não pesquisa os perfis

No método autenticarCliente, quando pesquiso o usuário pelo Id, acontece uma Exception

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Isso acontece na classe de Autenticação via Token:

public class AutenticacaoViaTokenFilter extends OncePerRequestFilter {

    private TokenService tokenService;
    private UsuarioRepository usuarioRepository;

    public AutenticacaoViaTokenFilter(TokenService tokenService, UsuarioRepository usuarioRepository) {
        this.tokenService = tokenService;
        this.usuarioRepository = usuarioRepository;
    }

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {

        String token = recuperarToken(request);
        Boolean valido = tokenService.isTokenValido(token);
        if (valido) {
            autenticarCliente(token);
        }
        filterChain.doFilter(request, response);
    }

    private void autenticarCliente(String token) {
        Long idUsuario = tokenService.getIdUsuario(token);      // DENTRO DO TOKEN HÁ O ID DO USUÁRIO QUE GEROU ESSE TOKEN
        Usuario usuario = usuarioRepository.findById(idUsuario).get();
        UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(usuario, null, usuario.getAuthorities());
        SecurityContextHolder.getContext().setAuthentication(authentication);
    }

    private String recuperarToken(HttpServletRequest request) {
        String token = request.getHeader("Authorization");

        if (token == null || token.isEmpty() || !token.startsWith("Bearer ")) {
            return null;
        } else {
            return token.substring(7, token.length());
        }
    }
}
1 resposta
solução!

Encontrei a resposta.

Quando fiz o relacionamento das entidades esqueci de ajustar o fetch, pois como padrão, relações @ManyToMany são do tipo Lazy

@ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "usuario_perfis",
            joinColumns = @JoinColumn(name = "usuario_id"),
            inverseJoinColumns = @JoinColumn(name = "perfis_id"))
    private List<Perfis> perfis = new ArrayList<>();