Двусторонний SSL для веб-сервисов в GAE (java)

Нам нужно реализовать двусторонний SSL в Google App Engine, где мы отправляем запросы веб-сервиса, используя JAX-WS, на сервер, требующий двустороннего SSL. аутентификация.

Как настроить двусторонний SSL для исходящих запросов веб-сервиса?

Мы знаем, что javax.net.ssl*запрещен в среде App Engine.

Вот пример нашего кода:

@WebService(name="ListenerSoap", targetNamespace = "http://example.com/Listener.Wsdl")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface ListenerSoap {

    @WebMethod(operationName = "Ping", action="http://example.com/Listener.Wsdl#Ping")
    public void ping();
}

@WebServiceClient(name="Listener", targetNamespace="http://example.com/Listener.Wsdl", wsdlLocation = "https://example.com/Listener.asmx?WSDL")
public class Listener extends Service
{
  public ListenerSoap getListenerSoap() {
   return super.getPort(new QName("http://example.com/Listener.Wsdl", 
                       "ListenerSoap"), ListenerSoap.class);
  }
}

И пример вышеприведенного кода в использовании:

ListenerSoap soap = new Listener().getListenerSoap();
soap.ping();

Я полагаю, что мы можем хранить хранилища ключей или любые сертификаты, необходимые в DataStore, как двоичные объекты (хотя, как их загрузить, все еще немного непонятно для меня).

Как мы можем установить необходимые значения, необходимые для аутентификации этой веб-службы с использованием двустороннего SSL?

Спасибо за любую помощь.

Обновление:

Благодаря исследованиям я увидел, как это можно сделать на традиционном сервере (с доступом к файловой системе):

ListenerSoap soap = new Listener().getListenerSoap();
((BindingProvider) soap).getRequestContext().put("javax.net.ssl.keyStore", "client_cert.p12"

Однако при таком подходе ] client_cert.p12должен находиться в файловой системе.

Кроме того, SSLSocketFactory, SSLContext, KeyManagerи KeyManagerFactoryне разрешены в GAE.

Обновление:

Начиная с GAE SDK версии 1.7.7. теперь это должно быть возможно:

Similarly, Java developers can now use the javax.net.ssl package to make outbound SSL connections.

Примечания к выпуску GAE 1.7.7 SDK

15
задан Cuga 26 April 2013 в 14:34
поделиться