2013-07-02 55 views
0

我使用WSConsume從WSDL文件生成了Web Serice客戶端存根控件。生成的存根將用於客戶端代碼以將數據發送到Web服務。從請求基本身份驗證的代理服務器通信到webservice

這一切工作正常。即客戶能夠與網絡服務進行通信並交換數據和一切。

當客戶端部署在代理服務器後面時,我的問題就開始了。我已經將這些內容中的大部分都整理出來了。我們所做的是在客戶端啓動時設置以下JVM屬性。

http.proxyHost,把http.proxyPort,https.proxyHost和https.proxyPort

我明白,這是不建議和時間,我們將移動到的ProxySelector。但是現在,只要代理不需要認證,現在這對我們很有用。

爲了解決我做了身份驗證問題覆蓋默認PasswordAuthentication

Authenticator.setDefault(new Authenticator() { 
    public PasswordAuthentication getPasswordAuthentication() { 
     return new PasswordAuthentication(httpsProxyUser, httpsProxyPassword.toCharArray()); 
    } 
}); 

這也是行之有效的大都如此。我知道這就是通常所說的NTLM認證。

當代理需要基本身份驗證時,我的惡夢開始了。從我迄今爲止瞭解的情況來看,爲了使此認證機制正常工作,我們需要在請求屬性中設置Proxy-Authorization標頭。如果我有權訪問HTTP客戶端對象,那麼可以輕鬆完成。

但是,如何在使用通過wsconsume生成的存根時執行此操作?

回答

0

執行此操作的一種方法是使用以下JVM選項。這一個爲我工作。

-Dhttp.auth.preference = 「基本」

相關問題