我正在使用Apache camel Spring-ws组件来使用SOAP服务。在使用HTTP协议托管时间之前,情况正常。
要使用HTTPS,我尝试将keystore和truststore jks设置如下
System.setProperty("javax.net.ssl.keyStore",keyStorePath);
System.setProperty("javax.net.ssl.keyStorePassword",keyStorePassword);
System.setProperty("javax.net.ssl.trustStore",trustStorePath);
System.setProperty("javax.net.ssl.trustStorePassword",trustStorePassword);
失败,错误无法找到证书。 当我使用Http组件使用RESTFull服务时,相同的属性和jks工作正常。
我可以看到目前唯一可用的选项是
<camel:sslContextParameters id="sslContextParameters">
<camel:keyManagers keyPassword="password">
<camel:keyStore type="JKS" resource="C:\keystore.jks"
password="changeit" />
</camel:keyManagers>
<camel:trustManagers>
<camel:keyStore type="JKS" resource="C:\keystore.jks"
password="password" />
</camel:trustManagers>
有没有办法我可以实用地配置它,我按照下面的链接
http://camel.apache.org/http4.html#HTTP4-UsingtheJSSEConfigurationUtility
KeyStoreParameters ksp = new KeyStoreParameters();
ksp.setResource("/users/home/server/keystore.jks");
ksp.setPassword("keystorePassword");
KeyManagersParameters kmp = new KeyManagersParameters();
kmp.setKeyStore(ksp);
kmp.setKeyPassword("keyPassword");
SSLContextParameters scp = new SSLContextParameters();
scp.setKeyManagers(kmp);
HttpComponent httpComponent = getContext().getComponent("https4", HttpComponent.class);
httpComponent.setSslContextParameters(scp);
支持的组件
但我如何设置它为camel-spring-ws组件?它目前是Camel的限制吗?