Với WebSphere Application Server 8.5.5 JAX-WS, hãy kiểm tra hai cơ chế kiểm soát xung quanh trước khi dựa vào một địa chỉ trong ngữ cảnh yêu cầu của máy khách. Thuộc tính IBM ở cấp JVM com.ibm.ws.websvcs.transport.enableProxyTunnel mặc định là false; địa chỉ riêng cho từng máy khách không bật đường hầm. Các giá trị vận chuyển HTTP của một bộ chính sách cũng ghi đè giá trị lập trình, và chúng ghi đè thuộc tính hệ thống của JVM.

Với cổng hiện có đã chọn, IBM ghi lại thiết lập riêng cho từng máy khách này trước khi gọi:

import javax.xml.ws.BindingProvider;

BindingProvider binding = (BindingProvider) servicePort;
binding.getRequestContext().put("https.proxyHost", "proxy.example");
binding.getRequestContext().put("https.proxyPort", "8080");

Các khóa HTTPS áp dụng cho điểm cuối HTTPS; với HTTP hãy dùng các khóa IBM HTTP tương ứng. Một điểm cuối SOAP công khai được cho phép chỉ có thể dùng địa chỉ HTTP từ danh sách proxy HTTP sau khi chính sách áp dụng và các cơ chế kiểm soát đường hầm cho phép, đồng thời không có tài khoản proxy nào được cấu hình ở các cấp đó. Xác thực proxy có các thuộc tính HTTP/HTTPS proxyUser và proxyPassword riêng, độc lập với thông tin đăng nhập của dịch vụ SOAP.

Đây là các phần mở rộng của WebSphere. Một bảng BindingProvider trong Metro, CXF hay cách triển khai khác không làm cho các chuỗi đó có thể chuyển dời.

Giữ các tuyến đồng thời khác nhau trên các đối tượng máy khách được cấu hình phù hợp thay vì ghi lại ngữ cảnh cổng dùng chung khi các lệnh gọi đang chạy. Cách này giới hạn địa chỉ cho máy khách thực tế mà không coi mọi cơ chế kiểm soát JVM xung quanh là cục bộ của máy khách.

Bài viết liên quan