如何在Apache HttpClient + Axis2中提供基本或摘要式身份验证的凭据

时间:2013-07-25 02:51:53

标签: authentication httpclient axis2 credentials

我正在使用一个使用Axis2 1.6.1的Web服务客户端。我需要为服务器提供基本或摘要式身份验证的凭据。我正在使用Axis2类,而不是直接使用HttpClient。我在网上搜索并阅读了一些Axis2源代码,但我还没弄清楚如何提供凭据。任何人都可以简单解释一下或提供合适的链接吗?

我认为凭据与Apache HttpClient中的HttpClient类相关联。我想如果我可以检索对Axis2使用的HttpClient对象的引用,我可以调用HttpClient方法来分配凭据。也许有人知道该怎么做?

提前感谢你能解决这个问题。

1 个答案:

答案 0 :(得分:0)

首先创建HttpTransportProperties.Authenticator类的实例并设置用户名和密码。

HttpTransportProperties.Authenticator
   auth = new HttpTransportProperties.Authenticator();
auth.setUsername("username");
auth.setPassword("password");

如果您出于安全原因要限制身份验证的范围,您可能还需要在此时设置主机,端口和域。

接下来创建Options类的实例,并使用您的身份验证器设置HTTPConstants.AUTHENTICATE属性。

Options options = new Options();
options.setProperty(HTTPConstants.AUTHENTICATE, auth);

这也是您通常设置EndpointReference和您需要的任何其他选项的地方。

最后,您可以创建ServiceClient对象并调用 setOptions 来传递您刚刚创建的选项。