I'm building an eclipse plugin that talks to a REST interface which uses Basic Authentication. When the authentication fails i would like to popup my plugin's settings dialog and retry. Normally I could use the static Authenticator.setDefault()
to setup an authenticator for all HttpURLConnection
's for this but since i am writing a plugin i don't want to overwrite eclipse's default Authenticator
(org.eclipse.ui.internal.net.auth
);
I thought of setting my custom Authenticator
before loading and putting eclipses default back afterwards but i imagine this will cause all sorts of race issues with multithreading so i quickly lost that notion.
Google searches yeild all sorts of results basically telling me its not possible:
The Java URLConnection API should have a setAuthenticator(Authenticator) method for making it easier to use this class in multi-threaded context where authentication is required.
If applications contains few third party plugins and each plugin use its own Authenticator what we should do ? Each invocation of "Authenticator.setDefault()" method rewrite previously defined Authenticator...
Any different approaches that might help me overcome this issue ?