如何从具有NTLM身份验证的Java客户端调用基于.Net的Web服务

时间:2016-04-12 20:45:19

标签: java web-services jax-ws ntlm

我想从java客户端代码调用基于.NET的web服务。我使用wsimport工具生成了JAX-WS存根。

这是在.NET客户端中创建凭据的方式 -

String nova = old.replace("\\n", System.getProperty("line.separator"));

我们如何在Java Client中类似地执行此操作?我搜索了很多,发现一些帖子建议进行NTLM身份验证,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

JAX-WS不支持NTLM身份验证,但您仍有几个选择

备选方案1: 创建自己的身份验证器并将其设置为默认值,它将用于所有HTTP通信。 仅当通信是server2server时才使用此备选方案,因为使用多个多用户帐户不是最佳选择。 您可以在此处查看如何实施该代码的代码:http://docs.oracle.com/javase/7/docs/technotes/guides/net/http-auth.html

备选方案2: 另一种方法是使用Axis2,它使用场景后面的HTTPClient。它将选择适合您的方案的最佳身份验证方法。 axis2 client NTLM authentication

注意: Axis2在某些版本的NTLM上存在问题,有些人建议您迁移到CFX CXF SOAP Client with NTLM to SharePoint

这些替代方案要求您在代码中包含新库,我希望它有所帮助