ntlm java,如何使用NTLM身份验证从Java客户端调用基于.Net的Web服务

I want to invoke the .NET Based webservice from a java client code. I generated JAX-WS stubs using wsimport tool.

This is how credentials are being created in .NET client-

NetworkCredential credential = new NetworkCredential(userName, password, "domain");

client.ClientCredentials.Windows.ClientCredential = credential ;

How do we do it similarly in Java Client? I searched a lot and found some posts suggesting to do NTLM authentication but I am not sure how to do that.

解决方案

NTLM authentication is not supported by JAX-WS but you still have a couple alternatives

Alternative 1:

Create your own authenticator and set it as default, it will be used for all of you HTTP communications.

Use this alternative only if the communication is server2server, since it's not optimal to use multiple multiple user accounts.

You can see the code of how to implement it here: http://docs.oracle.com/javase/7/docs/technotes/guides/net/http-auth.html

Alternative 2:

Another alternative is to use Axis2, which uses the HTTPClient behind the scene. It will select the best authentication method suited for your scenario.

axis2 client NTLM authentication

Note: Axis2 has issues with some versions of NTLM and some people is recomending to move to CFX CXF SOAP Client with NTLM to SharePoint

These alternative require you to include new libraries in your code, I hope it helps

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值