我正在使用https Web服务(使用JAX-WS RI创建的客户端代码)的客户端上工作。服务器需要用户身份验证,提供不同的PKCS12文件。当我的客户端启动时,我按如下方式设置密钥库和信任库:
System.setProperty("javax.net.ssl.keyStore",fileKeystore);
System.setProperty("javax.net.ssl.keyStorePassword",pwdKeystore);
System.setProperty("javax.net.ssl.keyStoreType","PKCS12");
System.setProperty("javax.net.ssl.trustStore",fileTruststore);
System.setProperty("javax.net.ssl.trustStorePassword",pwdTruststore);
System.setProperty("javax.net.ssl.trustStoreType","JKS");
然后我使用WS,一切正常:
string result = myClient.WSMethod(...);
我知道这些系统属性一旦设置就无法以相同的方式更改。因此,如果我需要更改密钥库以使用Web服务,而不重新启动我的服务器,那么我应该做什么?
换句话说,我会实现这种行为:
在SO上搜索我读到了有关创建SSLContext的内容,但我对如何做到并将其分配给与WS的连接感到有点困惑。