IBM Java SDK: configurar proxies para IAM e as chamadas ao servizo
Defina o proxy do autenticador de IAM e as HttpConfigOptions do servizo antes de que calquera dos dous comece a enviar solicitudes.
Defina ambas as rutas durante a inicialización, co autenticador de IAM que realmente se lle deu ao servizo:
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);Aquí authenticator e service son os obxectos existentes da aplicación. Aplique a configuración antes de que comece a obtención do token ou as solicitudes ao servizo, coa verificación normal de certificados activada. Cando a aplicación poida usar un punto de conexión HTTP público para ambos destinos, hai enderezos candidatos na lista de proxies HTTP.
As dúas asignacións cobren solicitudes distintas. authenticator.setProxy cobre a ruta do token de IAM; service.configureClient aplica o proxy ao transporte do servizo. Configurar unha non establece a ruta da outra.
Ante un fallo, identifique o host indicado na solicitude fallida. Obter o token correctamente reduce o problema á ruta do servizo; pero non demostra que esa ruta recibise as súas opcións de proxy.
HttpConfigOptions procede de IBM Java SDK Core. Ao adaptar un exemplo antigo de ConversationService, use o paquete Core e a xeración de servizo elixidos pola aplicación en lugar de copiar unha clase de rede antiga específica do servizo.