簡體   English   中英

使用Windows憑據從Java客戶端調用受保護的IIS Web服務

[英]Calling protected IIS web service from java client with windows credentials

我正在構建一個Java應用程序,該應用程序需要從Web服務獲取一些數據。 已經為我提供了wsdl文件和所有我需要的信息,但是卻獲得了未經授權的401代碼。 曾經做過Web服務的人告訴我,IIS中的Web服務目錄必須關閉匿名身份驗證,因此我需要傳遞Windows憑據。 我已經搜尋了很長時間的解決方案,但是沒有找到任何不能直接傳遞用戶名和密碼的東西。 我需要做的是使用用戶登錄Windows的憑據,以便不再需要輸入用戶名和密碼。 有沒有人有這個經驗? 我找到了一個叫做SPNEGO的東西,但是它也直接使用用戶名和密碼。

謝謝你的幫助。

您沒有編寫使用的Web服務框架(我假設您不是手動創建和發送soap請求)。

我假設Web服務是通過http-basic身份驗證來保護的。

如果您願意,我將使用支持該功能的測試工具soapUI對您的Web服務進行快速測試,並檢查是否是這種情況(請參閱: http : //www.soapui.org/SOAP-and -WSDL / authenticating-soap-requests.html

如果成功,則需要在http-header區域內傳遞用戶名和密碼。 (有關示例值,請參見“客戶端”部分: http//en.wikipedia.org/wiki/Basic_access_authentication

是的,很抱歉,忘了提到我正在使用軸。 盡管如此,最終還是設法對服務進行了身份驗證,因為事實證明它不使用基本身份驗證,而是使用NTLM。 所以現在我做這樣的事情:

    BAWebServiceLocator locator = new BAWebServiceLocator(getEngineConfiguration());
    BAWebServiceSoap baWebServiceSoap = locator.getBAWebServiceSoap(url);

    ((Stub)baWebServiceSoap).setUsername(props.getProperty("username"));
    ((Stub)baWebServiceSoap).setPassword(props.getProperty("password"));

因此,我仍然必須輸入我的用戶名和密碼。 我想要做的是使用登錄到Windows的憑據。 有任何想法嗎?

暫無
暫無

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

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