IBM Java SDK: Cấu hình proxy cho IAM và các lệnh gọi dịch vụ
Đặt proxy của trình xác thực IAM và HttpConfigOptions của dịch vụ trước khi một trong hai bắt đầu gửi yêu cầu.
Đặt cả hai tuyến trong quá trình khởi tạo, dùng trình xác thực IAM thực sự được cấp cho dịch vụ:
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);Ở đây authenticator và service là các đối tượng sẵn có của ứng dụng. Áp dụng cài đặt trước khi việc lấy token hoặc các yêu cầu dịch vụ bắt đầu, với việc xác minh chứng chỉ thông thường được bật. Khi ứng dụng có thể dùng điểm cuối HTTP công khai cho cả hai đích, các địa chỉ ứng viên có trong danh sách proxy HTTP.
Hai phép gán bao phủ các yêu cầu khác nhau. authenticator.setProxy bao phủ tuyến token IAM; service.configureClient áp dụng proxy cho phần truyền tải của dịch vụ. Cấu hình một bên không thiết lập tuyến của bên kia.
Khi gặp lỗi, hãy xác định máy chủ được nêu trong yêu cầu bị lỗi. Việc lấy token thành công chỉ thu hẹp vấn đề vào tuyến dịch vụ; nó không chứng minh rằng tuyến đó đã nhận được các tùy chọn proxy của nó.
HttpConfigOptions đến từ IBM Java SDK Core. Khi chuyển thể một ví dụ ConversationService cũ, hãy dùng gói Core và thế hệ dịch vụ mà ứng dụng đã chọn thay vì sao chép lớp mạng dành riêng cho dịch vụ cũ.