Tôi đang xây dựng một plugin Eclipse nói chuyện với giao diện REST sử dụng Xác thực cơ bản. Khi xác thực không thành công, tôi muốn bật hộp thoại cài đặt của plugin và thử lại. Thông thường tôi có thể sử dụng static Authenticator.setDefault()
để thiết lập một trình xác thực cho tất cả các HttpURLConnection
cho điều này, nhưng vì tôi đang viết một plugin tôi không muốn ghi đè lên mặc định của Eclipse Authenticator
(org.eclipse.ui.internal.net.auth
);Java Authenticator trên cơ sở mỗi kết nối?
Tôi đã nghĩ đến việc đặt tùy chỉnh Authenticator
trước khi tải và đặt lại mặc định của Eclipse, nhưng tôi cho rằng điều này sẽ gây ra tất cả các vấn đề chủng tộc với đa luồng, vì vậy tôi nhanh chóng mất khái niệm đó.
tìm kiếm của Google mang lại tất cả các loại kết quả về cơ bản nói với tôi đó là không thể:
Java URLConnection API phải có setAuthenticator (Authenticator) phương pháp để làm cho nó dễ dàng hơn để sử dụng lớp này trong bối cảnh đa luồng nơi xác thực là bắt buộc.
Nếu ứng dụng chứa vài plugin của bên thứ ba và mỗi plugin sử dụng Authenticator riêng gì chúng ta nên làm gì? Mỗi lời gọi của phương pháp "Authenticator.setDefault()" trước Rewrite định nghĩa Authenticator ...
Có bất kỳ phương pháp khác nhau có thể giúp tôi vượt qua vấn đề này?
+1 Tôi có cùng một vấn đề. Rất phiền phức! –