Конфигурация sni в клиенте cxf (3.1.2)

Я хочу установить собственное имя хоста SNI (конфигурация SNI) при выполнении вызова отдыха с использованием клиента CXF (3.1.2). Я использую java 8. Я могу сделать то же самое с помощью HTTPClient (см. Фрагмент сильного текстового кода ниже для справки), но я не могу понять, как сделать то же самое с помощью клиента CXF.

// Для HTTP-клиента

 private SSLConnectionSocketFactory createSSLConnectionSocketFactory(String sniHostanme,
        SSLContext sslContext){

    // Fix for host name verifier, need to implement----------------------
    SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new String[] { "TLSv1.2" }, null,
            SSLConnectionSocketFactory.getDefaultHostnameVerifier()) {
        @Override
        protected void prepareSocket(SSLSocket socket) throws IOException {
            try {
        //      System.out.println("************ setting socket HOST property *************");

                // If SNI is required
                if (StringUtils.isNotBlank(sniHostanme)) {
                    log.debug("SNI HOSTNAME = "+sniHostanme);

                    List<SNIServerName> sniServerNames = new ArrayList<>();
                    sniServerNames.add(new SNIHostName(sniHostanme));

                    SSLParameters sslParam = new SSLParameters();
                    sslParam.setServerNames(sniServerNames);
                    socket.setSSLParameters(sslParam);
                }
                // PropertyUtils.setProperty(socket, "host", "ws.mastercard.com");
            } catch (Exception ex) {
                log.error(ex.getMessage());
            }
            // super.prepareSocket(socket);
        }

    };
    return sslsf;
}
2
0
323
1

Ответы 1

Используйте класс org.apache.cxf.configuration.jsse.TLSClientParameters и метод public final void setCertAlias ​​(String ctAlias), чтобы установить псевдоним сертификата, используемый на стороне сервера, это полезно, когда в хранилище ключей есть несколько сертификатов. Надеюсь, это поможет вам.

Другие вопросы по теме