Olá estou com um problema no metódo doFilterInternal, ele não está recuperando o token vou deixar o código aqui. Se alguém souber o que está acontecendo pode me dar uma ajuda aqui.
Classe Token Service:
@Service
public class TokenService {
@Value("&{api.security.token.secret}")
private String secret;
public String gerarToken(Usuario usuario) {
System.out.println(secret);
try {
var algorithm = Algorithm.HMAC256(secret);
return JWT.create()
.withIssuer("API_VOLL.MED")
.withSubject(usuario.getLogin())
.withExpiresAt(dataExpiracao())
.sign(algorithm);
} catch (JWTCreationException exception) {
throw new RuntimeException("Erro ao gerar Token", exception);
}
}
public String getSubject(String tokenJWT) {
try {
var algoritmo = Algorithm.HMAC256(secret);
return JWT.require(algoritmo)
.withIssuer("API Voll.med")
.build()
.verify(tokenJWT)
.getSubject();
} catch (JWTVerificationException exception) {
throw new RuntimeException("Token JWT inválido ou expirado!");
}
}
private Instant dataExpiracao() {
return LocalDateTime.now().plusHours(2).toInstant(ZoneOffset.of("-03:00"));
}
}
Classe SecurityFilter:
@Component
public class SecurityFilter extends OncePerRequestFilter {
@Autowired
private TokenService tokenService;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
var token = recuperarToken(request);
System.out.println("Token recuperado: " + token);
var subject = tokenService.getSubject(token);
System.out.println("Token subject: " + subject);
filterChain.doFilter(request, response);
}
private String recuperarToken(HttpServletRequest request) {
var authorizationHeader = request.getHeader("Authorization");
if (authorizationHeader == null) {
throw new RuntimeException("Token JWT não enviado no cabeçalho!");
}
return authorizationHeader.replace("Bearer", "");
}
}
Vou mostrar agora o erro que está acontecendo:
O que mostra no Insominia:
O que mostra no Inteliji :
Se alguém souber o que está acontecendo, da alguma dica de como resolver.