Как отключить протокол сокета SSLv2 по оси - PullRequest
1 голос
/ 03 февраля 2012

У меня проблема с использованием веб-службы с использованием оси. Это происходит из-за того, что ось отправила SSLv2 ClientHello, а сервер, предлагающий веб-службу, не поддерживает протокол SSLv2.Чтобы это исправить, я должен отключить этот протокол.Код для отключения его в Java:

SocketFactory socketFactory = SSLSocketFactory.getDefault();
SSLSocket socket = (SSLSocket) socketFactory.createSocket(hostname, port);
socket.setEnabledProtocols(new String[] {"SSLv3", "TLSv1"});

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

Ответы [ 2 ]

1 голос
/ 03 февраля 2012

Если вы используете Axis 2, вы сможете настроить Apache HttpClient 3.x SecureProtocolSocketFactory (см. Документацию Axis 2 по теме ).Вы должны иметь возможность установить включенные протоколы в createSocket перед возвратом сокета.(Вас также может заинтересовать этот вопрос .)

Для Axis 1 вы должны иметь возможность установить для свойства axis.socketSecureFactory собственное имя класса, реализующее Axis SecureSocketFactory и настройте сокет там же.

0 голосов
/ 11 февраля 2016

для оси 1:

  1. Создайте свой собственный MySocketFactory, который расширяет SecureScoketFatory.

    String[] protocols = { "TLSv1" };//provide the list of protocols which you        want to enable
    ((SSLSocket) sslSocket).setEnabledProtocols(protocols);
    
  2. Затем на уровне клиента веб-службы укажите свойство System, как показано ниже.

    System.setProperty("axis.socketSecureFactory", "com.custom.MySocketFactory");
    
...