Définissez les deux chemins dès l'initialisation, avec l'authentificateur IAM réellement fourni au service :

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);

Ici, authenticator et service sont les objets existants de l'application. Appliquez les réglages avant le début de l'obtention du jeton ou des requêtes au service, la vérification normale des certificats restant activée. Lorsque l'application peut utiliser un point de terminaison HTTP public pour les deux destinations, des adresses candidates figurent dans la liste de proxys HTTP.

Les deux affectations couvrent des requêtes différentes. authenticator.setProxy couvre le chemin du jeton IAM ; service.configureClient applique le proxy au transport du service. Configurer l'une n'établit pas le chemin de l'autre.

En cas d'échec, identifiez l'hôte nommé dans la requête qui a échoué. Une obtention réussie du jeton circonscrit le problème au chemin du service ; elle ne prouve pas que ce chemin a bien reçu ses options de proxy.

HttpConfigOptions provient d'IBM Java SDK Core. Pour adapter un ancien exemple ConversationService, utilisez le paquet Core et la génération de service choisie par l'application plutôt que de copier une ancienne classe réseau propre au service.

Articles similaires