IBM Java SDK: configurar proxies para IAM e chamadas ao serviço
Defina o proxy do autenticador de IAM e as HttpConfigOptions do serviço antes que qualquer um deles comece a enviar pedidos.
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.