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