Несвязанные розетки не реализованы - PullRequest
3 голосов
/ 29 марта 2012

Мне нужно получить доступ к веб-сервису с двухсторонней аутентификацией. Ниже мой подход.

Создан класс MyCustomSSLSocketFactory.

  1. Загруженные траст-менеджеры
  2. Менеджеры загруженных хранилищ ключей
  3. Создан контекст SSL и фабрика сокетов SSL, как показано ниже.

Я вызываю этот метод класса непосредственно перед вызовом метода webservice.

Тогда я сделал, как показано ниже: -

AxisProperties.setProperty("axis.socketSecureFactory",
                            "com.elipva.zephyr.twofa.util.MyCustomSSLSocketFactory");

Security.setProperty("ssl.SocketFactory.provider",
                    "com.elipva.zephyr.twofa.util.MyCustomSSLSocketFactory");


SSLContext context = SSLContext.getInstance(protocolVersion);
context.init(keyManagers, trustManagers, null);
SSLSocketFactory socketFactory = context.getSocketFactory();

URL url = new URL(urlString);
URLConnection connection = url.openConnection();
  if (connection instanceof HttpsURLConnection) {
    ((HttpsURLConnection) connection)
                .setSSLSocketFactory(sslSocketFactory);

            connection.connect();
        }   

когда я получаю доступ к веб-сервису, выдается сообщение об ошибке ниже.

org.apache.axis2.AxisFault: Unconnected sockets not implemented
    at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
    at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:203)
    at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:400)
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225)
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:435)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:402)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)

Пожалуйста, дайте мне знать, если я что-то упустил.

Ответы [ 2 ]

1 голос
/ 19 марта 2014

Проблема решена, просто импортированные сертификаты в файле cacerts.

0 голосов
/ 29 марта 2012

Я думаю, что это может быть ошибка Java - http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6771432

Обратите внимание, что это якобы исправлено в Java 1.6.0_u14

...