【发布时间】:2015-06-14 09:48:35
【问题描述】:
在一个非常古老的项目中,我们使用使用 Axis 1.4 开发的客户端来调用 SOAP Web 服务。此 Web 服务使用相互身份验证机制,因此我们在密钥库中安装了一个私有证书,在信任库中安装了一个公钥。
SOAP 客户端用于 BPM 流程的任务中。我们不能也不想使用 JVM 全局信任库和密钥库。那么我们就不能以编程方式配置 JVM 全局 trustore 和 keystore:
// Keystore
System.setProperty("javax.net.ssl.keyStore", fileKeystore);
System.setProperty("javax.net.ssl.keyStorePassword", pwdKeystore);
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
// Truststore
System.setProperty("javax.net.ssl.trustStore", fileTruststore);
System.setProperty("javax.net.ssl.trustStorePassword", pwdTruststore);
System.setProperty("javax.net.ssl.trustStoreType", "JKS");
这样的方法将迫使我们在 JVM 属性上同步进程,而我们不想这样做。而且,机器上还运行着其他的java进程。
我的问题是:Axis 1.4 是否提供一些 API 来指定用于特定 Web 服务调用的密钥库和信任库?
【问题讨论】: