IBM Java SDK: configurar proxies para IAM y las llamadas al servicio
Defina el proxy del autenticador de IAM y las HttpConfigOptions del servicio antes de que cualquiera de los dos empiece a enviar solicitudes.
Defina ambas rutas durante la inicialización, con el autenticador de IAM que realmente se entregó al servicio:
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 y service son los objetos existentes de la aplicación. Aplique la configuración antes de que empiecen la obtención del token o las solicitudes al servicio, con la verificación normal de certificados activada. Cuando la aplicación pueda usar un punto de conexión HTTP público para ambos destinos, hay direcciones candidatas en la lista de proxies HTTP.
Las dos asignaciones cubren solicitudes distintas. authenticator.setProxy cubre la ruta del token de IAM; service.configureClient aplica el proxy al transporte del servicio. Configurar una no establece la ruta de la otra.
Ante un fallo, identifique el host indicado en la solicitud fallida. Obtener el token correctamente reduce el problema a la ruta del servicio; pero no demuestra que esa ruta haya recibido sus opciones de proxy.
HttpConfigOptions proviene de IBM Java SDK Core. Al adaptar un ejemplo antiguo de ConversationService, use el paquete Core y la generación de servicio elegidos por la aplicación en lugar de copiar una clase de red antigua específica del servicio.