簡體   English   中英

如何從具有NTLM身份驗證的Java客戶端調用基於.Net的Web服務

[英]How to invoke the .Net Based webservice from a java client with NTLM authentication

我想從java客戶端代碼調用基於.NET的Web服務。 我使用wsimport工具生成了JAX-WS存根。

這是在.NET客戶端中創建憑據的方式 -

NetworkCredential credential = new NetworkCredential(userName, password, "domain");
client.ClientCredentials.Windows.ClientCredential = credential ;

我們如何在Java客戶端中類似地執行此操作? 我搜索了很多,發現一些帖子建議進行NTLM身份驗證,但我不知道該怎么做。

JAX-WS不支持NTLM身份驗證,但您仍有幾種選擇

備選方案1:創建自己的身份驗證器並將其設置為默認值,它將用於所有HTTP通信。 僅當通信是server2server時才使用此備選方案,因為使用多個多用戶帳戶不是最佳選擇。 您可以在此處查看如何實現它的代碼: http//docs.oracle.com/javase/7/docs/technotes/guides/net/http-auth.html

備選方案2:另一種方法是使用Axis2,它使用場景后面的HTTPClient。 它將選擇適合您的方案的最佳身份驗證方法。 axis2客戶端NTLM身份驗證

注意: Axis2在某些版本的NTLM上存在問題,有些人建議使用NTLM遷移到使用NTLM的 CFX CXF SOAP客戶端

這些替代方案要求您在代碼中包含新庫,我希望它有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM