我需要爲需要NTLM身份驗證的URL執行HTTP GET。我可以在MacBook Pro上使用Firefox或Chrome訪問URL。瀏覽器要求提供用戶名/密碼組合,並且它可以工作。我現在正在嘗試使用HttpClient從Groovy執行相同的操作。我跟着NTLM support guide,但我總是得到一個401 Unauthorized
回來。也有這句話的迴應:使用httpclient 4.2.1的NTLM身份驗證
您沒有權限使用您提供,因爲您的Web瀏覽器發送一個 WWW身份驗證頭字段中 憑據查看該目錄或網頁的Web服務器未配置爲 接受。
我在這段代碼中嘗試了servername和domain(遠程windows pc不在域中)的各種組合,但我總是得到相同的響應。
httpclient.getCredentialsProvider().setCredentials(
new AuthScope("myserver", -1),
new NTCredentials("username", "password", "MYSERVER", "MYDOMAIN"));
任何人都有同樣的問題,並設法解決它?請注意,這是一個使用IIS下的外部程序,所以我不認爲我可以在那裏更改任何設置。
編輯:
不像我說過的話,我設法更改IIS的安全設置接受BASIC authentation,所以我沒有問題了。
我的MacBook Pro運行OS X 10.8.2,而不是Windows。 –
然後你有更多的障礙要克服...請參閱我編輯的評論。 –
Mac不需要爲NTLM加入域(但會用於Kerberos。)NTLM *可以*使用用戶名/密碼執行身份驗證。如果您登錄到Windows,它將嘗試使用會話的當前憑據,如果失敗,會提示。將DOMAIN \用戶名和密碼傳遞給NTLM非常合適,特別是在非Windows機器上。 –