Prezados, boa noite!
Caso a outra API necessitasse de um token de acesso para confirmar o pagamento, como poderia ser enviado esse token JWT?
Prezados, boa noite!
Caso a outra API necessitasse de um token de acesso para confirmar o pagamento, como poderia ser enviado esse token JWT?
Oi, tudo bem?
Entendo que você gostaria de saber como enviar um token JWT para uma API utilizando o Feign.
Em uma situação em que você precisa enviar um token JWT para autenticação, você pode fazer isso adicionando o token no cabeçalho da solicitação. No Feign, você pode fazer isso criando um RequestInterceptor
que adiciona o token a todas as solicitações.
Aqui está um exemplo de como você pode fazer isso:
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FeignConfig {
@Bean
public RequestInterceptor requestInterceptor() {
return new RequestInterceptor() {
@Override
public void apply(RequestTemplate template) {
template.header("Authorization", "Bearer " + getJWT());
}
};
}
private String getJWT() {
// Aqui você deve implementar a lógica para obter o JWT.
// Pode ser de um serviço de autenticação, um valor armazenado, etc.
return "your-jwt-token";
}
}
Neste exemplo, um RequestInterceptor
é criado que adiciona um cabeçalho de "Authorization" a todas as solicitações feitas pelo Feign. O valor do cabeçalho é "Bearer " seguido pelo JWT. A função getJWT()
deve ser implementada para retornar o JWT que você deseja enviar.
Depois de criar esta configuração, você precisa informar ao Feign para usá-la. Você pode fazer isso adicionando a anotação @FeignClient
na interface do seu cliente Feign. Aqui está um exemplo:
@FeignClient(name = "pedidos-ms", configuration = FeignConfig.class)
public interface PedidoClient {
// ...
}
Neste exemplo, a anotação @FeignClient
foi modificada para incluir a propriedade configuration
, que aponta para a classe FeignConfig
que contém o RequestInterceptor
.
Isso é uma ideia de como você pode fazer, talvez seja necessário adaptar para o seu projeto.
Você precisa substituir "your-jwt-token" pela maneira que você utiliza para obter o token JWT.
Um abraço e bons estudos.
Lorena, bom dia!
Estou bem, obrigado!
Show, muito obrigado pelos exemplos e pela explicação, agora ficou muito mais claro.