Defina as duas rotas durante a inicialização, com o autenticador de IAM realmente fornecido ao serviço:

import java.net.InetSocketAddress;
import java.net.Proxy;
import com.ibm.cloud.sdk.core.http.HttpConfigOptions;

var proxy = new Proxy(
    Proxy.Type.HTTP,
    new InetSocketAddress("proxy.example.net", 8080));

authenticator.setProxy(proxy);

var options = new HttpConfigOptions.Builder()
    .proxy(proxy)
    .build();
service.configureClient(options);

Aqui, authenticator e service são os objetos existentes da aplicação. Aplique as definições antes de começar a obtenção do token ou os pedidos ao serviço, com a verificação normal de certificados ativa. Quando a aplicação pode usar um endpoint HTTP público para ambos os destinos, há endereços candidatos na lista de proxies HTTP.

As duas atribuições cobrem pedidos diferentes. authenticator.setProxy cobre o caminho do token de IAM; service.configureClient aplica o proxy ao transporte do serviço. Configurar uma não estabelece a rota da outra.

Em caso de falha, identifique o anfitrião indicado no pedido que falhou. Obter o token com êxito reduz o problema ao caminho do serviço; mas não prova que esse caminho recebeu as suas opções de proxy.

HttpConfigOptions vem do IBM Java SDK Core. Ao adaptar um exemplo antigo de ConversationService, use o pacote Core e a geração de serviço escolhidas pela aplicação em vez de copiar uma classe de rede antiga específica do serviço.

Artigos relacionados