Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Meu método getSubjet da classe TokenService está retornando erro 500 para todas as requisições.

Isso acontece justamente na linha var subject = tokenService.getSubject(jwtToken), quando comentada o projeto volta a funcionar passado o tonken no Auth, no meu caso estou usando o Postman, segue o código:

    @Autowired
    private TokenService tokenService;

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
       var jwtToken = verificarionToken(request);
        System.out.println(request);
       var subject = tokenService.getSubject(jwtToken);
        System.out.println(subject);
       filterChain.doFilter(request,response);
    }

Classe TokenService:

    public String getSubject(String jwtToken) {
        try {
            var algoritmo = Algorithm.HMAC256(scrt);
            return JWT.require(algoritmo)
                    .withIssuer("API Voll")
                    .build()
                    .verify(jwtToken)
                    .getSubject();
        } catch (JWTVerificationException exception) {
            throw new RuntimeException("Token inválido ou expirado!");
        }
    }

Ps:* Já verifiquei se era o import da classe TokenService errado, mas está correta.**

2 respostas
solução!

Oi Fernando!

Coloca um printStackTrace no catch para ver no console a exception que está ocorrendo:

 } catch (JWTVerificationException exception) {
     exception.printStackTrace();
    throw new RuntimeException("Token inválido ou expirado!");
}

Hhahahha O meu token expirou. Edit: Eu coloquei o método plusYear(1) no LocalDateTime, registrei um outro usuário no banco com query e gerei um token que agora funciona.