2012-10-22 52 views
0

我想我在這裏沒有想法。Java Trusting SSL CA

我想在Java中使用具有SSL證書的Web服務。

我創建了一個密鑰庫文件,我在其中添加了證書。該文件位於我的項目文件夾中。

我進口它使用:

System.setProperty("javax.net.ssl.keyStore", "folder\\keystore.jks"); 
System.setProperty("javax.net.ssl.keyStorePassword", "SECRET"); 

顯然,Web服務調用檢查密鑰庫,因爲調用WS時,不設置系統屬性時給人一種錯誤的文件路徑當應用程序拋出異常。

總之,給人的正確路徑密鑰庫文件時,我仍然得到

AxisFault 的faultcode:{http://xml.apache.org/axis/}HTTP faultSubcode: faultString: (401)需要授權

有人告訴我,我必須相信CA,在這之前任何工作。

我如何做到這一點?

+0

我想說的錯誤不涉及SSL加密。 Web服務由除SSL之外的其他機制(認證)保護,例如, SSL客戶端證書,WS-Security等。詢問供應商該做什麼。 – home

+0

這與SSL認證無關。看起來用戶名和密碼不可訪問。請檢查用戶名和密碼是否具有完全許可。 – Ami

+0

問題是,我能夠通過提供我的用戶名和密碼(並從wsdl生成客戶端存根)使用delphi7訪問Web服務。 – LuigiEdlCarno

回答

1

我想通了。顯然該服務使用HTTP基本認證。

該軸產生的存根(其延伸org.apache.axis.client.stub),需要在構造

((org.apache.axis.client.Stub) this)._setProperty(org.apache.axis.client.Call.USERNAME_PROPERTY, "HTTPUSER"); 
((org.apache.axis.client.Stub) this)._setProperty(org.apache.axis.client.Call.PASSWORD_PROPERTY, "HTTPPW"); 

謝謝使你們雅幫助以下2行。

問候