IBM Java SDK: IAM 및 서비스 호출을 위한 프록시 구성
IAM 인증자의 프록시와 서비스의 HttpConfigOptions를 둘 중 어느 것도 요청을 보내기 전에 설정하십시오.
초기화 시점에 두 경로를 모두 설정하고, 서비스에 실제로 전달된 IAM 인증자를 사용하십시오:
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);여기서 authenticator 및 service는 애플리케이션에 이미 있는 객체입니다. 토큰 획득이나 서비스 요청이 시작되기 전에 설정을 적용하고, 일반적인 인증서 검증은 활성 상태로 두십시오. 애플리케이션이 두 대상 모두에 공용 HTTP 엔드포인트를 사용할 수 있는 경우, 후보 주소는 HTTP 프록시 목록에 있습니다.
두 할당은 서로 다른 요청을 다룹니다. authenticator.setProxy는 IAM 토큰 경로를 다루고, service.configureClient는 서비스 전송에 프록시를 적용합니다. 하나를 구성해도 다른 하나의 경로가 설정되지는 않습니다.
실패가 발생하면 실패한 요청에 명시된 호스트를 확인하십시오. 토큰 획득에 성공하면 문제가 서비스 경로로 좁혀지지만, 그 경로가 프록시 옵션을 받았다는 증거는 아닙니다.
HttpConfigOptions는 IBM Java SDK Core에서 제공됩니다. 오래된 ConversationService 예제를 적용할 때는 오래된 서비스 전용 네트워킹 클래스를 복사하지 말고 애플리케이션이 선택한 Core 패키지와 서비스 세대를 사용하십시오.