[英]HTTP “Negotiate” authentication via NTLM from a Java SE6 client on Windows
有沒有人知道在Windows上運行的Java 6客戶端是否能夠在訪問實現SPNEGO身份驗證協議的Microsoft服務器時通過NTLM進行身份驗證?
我的理解是,在Windows上運行的Java 6內置了對SPNEGO的支持,但似乎Java實現在kerberos身份驗證不可能的情況下不會嘗試NTLM身份驗證。 Sun文檔中提供的Authenticator示例在響應服務器發送WWW-Authenticate:Negotiate時發生401 Unauthorized錯誤失敗。
以下是測試環境的說明:
目標服務器:
客戶端機器:
最終目標是使用Apache CXF 2.4.0在WCF服務器上調用SOAP服務。 在添加CXF和SOAP的復雜性之前,我一直在嘗試使用簡單的Java測試應用程序從服務器檢索WSDL來解決身份驗證問題。
FWIW - 我可以使用Windows服務器的本地管理員登錄從IE訪問WCF服務器。 我還能夠創建一個沒有任何特殊授權配置的Delphi XE SOAP客戶端。 Delphi SOAP客戶端使用WinInet。
Java的SPNEGO只能使用Kerberos,因為NTLM是專有的傳統MS技術。 如果您的目標計算機不屬於域名,就像您的情況一樣,那么您運氣不好。 如果可以,您應該切換到DIGEST-MD5身份驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.