[英]401: Unauthorized Exception occurred with an apache axis client(java) to invoke a webservice(.net) with an NTLM Authentication Technique
[英]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.