当前位置:  开发笔记 > 编程语言 > 正文

基于每个连接的Java身份验证器?

如何解决《基于每个连接的Java身份验证器?》经验,为你挑选了1个好方法。

我正在构建一个与使用基本身份验证的REST接口对话的Eclipse插件.当身份验证失败时,我想弹出我的插件的设置对话框并重试.通常我可以使用静态Authenticator.setDefault()为所有人设置一个身份验证器HttpURLConnection,但是因为我正在编写一个插件,所以我不想覆盖Eclipse的默认值Authenticator(org.eclipse.ui.internal.net.auth);

我想Authenticator在加载之前设置我的自定义并在之后放回Eclipse的默认值,但我想这将导致多线程的种类问题,所以我很快就失去了这个概念.

Google搜索会产生各种结果,基本上告诉我这是不可能的:

Java URLConnection API应该有一个setAuthenticator(Authenticator)方法,以便在需要身份验证的多线程上下文中更容易地使用此类.

资源

如果应用程序包含很少的第三方插件,并且每个插件都使用自己的Authenticator,我们应该做什么?每次调用"Authenticator.setDefault()"方法都会重写以前定义的Authenticator ...

资源

是否有任何不同的方法可以帮助我克服这个问题?



1> 小智..:

如果无法使用HttpURLConnection,我建议使用Apache 的httpclient库.

一个简单的例子:

HttpClient client = new HttpClient();
client.getState().setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("test","test"));
GetMethod getMethod = new GetMethod("http://www.example.com/mylogin");
client.executeMethod(getMethod);
System.out.println(getMethod.getResponseBodyAsString());

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有