Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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();
     
  }`