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

[Duvida] Devolver corpo de resposta quando o token for invalido

Com base no curso realizei uma implementação parecida e estou segregando acessos para algumas rotas, implementei um Exception Handler, porém quando recebo o erro "Token JWT inválido ou expirado!" que fica na classe TokenService não consigo lançar um corpo de resposta na api, ela somente mostra no console. Gostaria de saber como posso fazer isso. Aqui o link do meu projeto no git hub para analise e ver quais pontos posso ajustar.

[https://github.com/marcosMatias/springSecurityRoles]Spring Security Roles)

1 resposta
solução!

Consegui resolver o problema, na classe SecurityFilter coloquei um Try Catch e ajustando as exceptions no RestControllerAdvice. ` try { var tokenJwt = recuperarToken(request);

        if (tokenJwt != null) {

            var subject = tokenService.getSubject(tokenJwt);
            var usuario = usuarioRepository.findByLogin(subject);
            var authentication = new UsernamePasswordAuthenticationToken(usuario, null, usuario.getAuthorities());

            SecurityContextHolder.getContext().setAuthentication(authentication);
        }

        filterChain.doFilter(request, response);
        
          }
 catch(InvalidJwtException ex) {
      
      response.setStatus(HttpStatus.FORBIDDEN.value()); 
      response.setContentType("application/json");    	     	
      response.getWriter().write("{\"error\": \""+ex.getMessage()+"\"}");
      response.getWriter().flush();
     
  }`