Я пытаюсь получить двухстороннюю аутентификацию SSL, работающую для клиента веб-службы JAX-WS в Google App Engine.Могу ли я установить свойство Keystore с помощью URL-адреса?
Я относительно уверен, что я могу установить секретный ключ клиента путем литья в BindingProvider и установка javax.net.ssl.keystore
свойства, например, так:
WebServicePortType service = new WebService().getWebServicePort();
((BindingProvider) service).getRequestContext().put("javax.net.ssl.keyStore", "client_cert.p12"
Все примеры, которые я могу найти предположить client_cert.p12
быть файл на локальной файловой системы.
Поскольку мы находимся в Google App Engine, нам запрещено напрямую обращаться к файловой системе.
Будет ли этот контекст принимать URL-адрес для хранилища ключей? Если нет, могу ли я установить хранилище ключей в веб-службе, которая не требует доступа к файловой системе?
Благодаря
Edit:
SSLSocketFactory
, SSLContext
, KeyManager
и KeyManagerFactory
все не допускаются на GAE.
Можно ли создать файл в GAE? – Santosh
В этой документации это звучит так, как будто я могу: https://developers.google.com/appengine/kb/java#readfile, но я все еще не уверен, как установить свойство javax.net.ssl.keystore , Все примеры, которые я нахожу, определяют имя файла String в качестве назначаемого значения. – Cuga