在运行时更改密钥库和信任库

时间:2014-04-01 08:41:52

标签: java web-services runtime keystore

我正在使用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服务,而不重新启动我的服务器,那么我应该做什么?

换句话说,我会实现这种行为:

  1. 使用用户#1
  2. 的密钥库/信任库来使用WS
  3. 使用用户#2
  4. 的密钥库/信任库来使用WS
  5. ....
  6. 在SO上搜索我读到了有关创建SSLContext的内容,但我对如何做到并将其分配给与WS的连接感到有点困惑。

0 个答案:

没有答案