Я создаю плагин Eclipse, который разговаривает с интерфейсом REST, который использует базовую аутентификацию. Когда аутентификация завершится неудачно, я хотел бы открыть диалоговое окно настроек плагина и повторить попытку. Обычно я мог использовать статический Authenticator.setDefault()
для установки аутентификатора для всех HttpURLConnection
для этого, но так как я пишу плагин, я не хочу перезаписывать Eclipse по умолчанию Authenticator
(org.eclipse.ui.internal.net.auth
);
Я подумал о том, чтобы установить свой пользовательский Authenticator
перед загрузкой и по умолчанию включить Eclipse default, но я предполагаю, что это вызовет всевозможные проблемы гонки с многопоточным процессом, поэтому я быстро потерял это понятие.
Поиски Google дают всевозможные результаты, в основном говорящие мне, что это невозможно:
API URL-адреса Java API должен иметь метод setAuthenticator (Authenticator) для упрощения использования этого класса в многопоточном контексте, где требуется аутентификация.
Если приложения содержат несколько сторонних плагинов, и каждый плагин использует собственный Authenticator, что мы должны делать? Каждый вызов метода Authenticator.setDefault() переписывает ранее определенный Authenticator...
Существуют ли разные подходы, которые могут помочь мне преодолеть эту проблему?