Подтвердить что ты не робот

Изменение хранилища ключей и доверительного хранилища во время выполнения

Я работаю над клиентом, который использует веб-службу https (код клиента, созданный с помощью 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(...);

Я знаю, что эти системные свойства не могут быть изменены таким же образом после установки. Итак, если мне нужно изменить хранилище ключей для использования веб-службы, без перезагрузки моего сервера, как другого пользователя, что мне делать?

Другими словами, я бы достиг такого поведения:

  • Использовать WS, используя хранилище/доверие пользователя пользователя # 1
  • Потребляйте WS, используя хранилище/хранилище доверия пользователя # 2
  • ....

Поиск в SO Я читал о создании SSLContext, но я немного смущен о том, как это сделать и назначить его соединению с WS.

4b9b3361