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

Enviar token via Feign

Prezados, boa noite!

Caso a outra API necessitasse de um token de acesso para confirmar o pagamento, como poderia ser enviado esse token JWT?

2 respostas
solução!

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.