2016-11-04 110 views
0

我開發了一個使用x509進行安全保護的彈出式SOAP Web服務,就像它在x-509-spring-rest-web-service-tutorial(我適用於SOAP WS)中描述的那樣。它工作正常。我可以通過瀏覽器與服務進行通信(獲取WSDL或檢查運行狀況)或SOAP UI(發出請求)。 SOAP UI配置很棘手。x509彈簧客戶端,錯誤證書

然後我實現了一個彈簧客戶端來根據spring-soap-client-tutorial與服務器進行通信。有用。

現在我試圖促進與x509的安全通信。我堅持構建。要構建我使用這個命令 clean compile \ -Djavax.net.ssl.trustStore=src/main/resources/truststore.jks \ -Djavax.net.ssl.trustStoreType=JKS \ -Djavax.net.ssl.trustStorePassword=password

我得到的異常 Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: bad_certificate

我想我的信任是不正確的。我在那裏簽署了服務器證書。它應該包含什麼?我還能做什麼錯?

回答

1

你想穩定,可重複的構建,所以不要編譯在線資源。
製作在線資源的本地副本,並使用catalog files重寫絕對URL以指向本地副本。

將您的https://www.acme.com/foo/schema.xsd保存爲src/main/resources/www.acme.com/foo/schema.xsd

寫目錄文件:

REWRITE_SYSTEM "https://www.acme.com" "www.acme.com" 

用它在你的身材:

<catalog>src/main/resources/catalog.cat</catalog> 
<schemas> 
    <schema> 
     <url>https://www.acme.com/foo/schema.xsd</url> 
    </schema> 
</schemas> 

我不認爲SSL問題是值得這裏戰鬥。但試試-Djavax.net.debug=all來調試它。

+0

我運行'mvn clean compile'並得到一個異常'無法執行目標org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.13.1:在項目中生成(默認)myproject:無法解析配置mojo org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.13.1:爲參數模式生成:無法在'schema''的org.jvnet.jaxb2.maven2.ResourceEntry中找到setter,adder或field。我可能做錯了什麼? – user1648825

+0

一個'schema'元素被複制。現在更正。 – lexicore

+0

謝謝。有用。現在我在客戶端啓動時遇到了錯誤的證書異常。 – user1648825