You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Göran Erkstam (Jira)" <ji...@apache.org> on 2019/10/15 12:08:00 UTC

[jira] [Updated] (CAMEL-14070) netty4-http - Server Name Indication (SNI) Support

     [ https://issues.apache.org/jira/browse/CAMEL-14070?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Göran Erkstam updated CAMEL-14070:
----------------------------------
    Description: 
Implement Server Name Indication (SNI) support for the netty4-http client.

(Has been solved for HttpClient for many years https://issues.apache.org/jira/browse/HTTPCLIENT-1119)

This could be implemented in the HttpClientInitializerFactory.configureClientSSLOnDemand like this:
{code:java}
private SslHandler configureClientSSLOnDemand() throws Exception {
        if (!producer.getConfiguration().isSsl()) {
            return null;
        }        if (producer.getConfiguration().getSslHandler() != null) {
            return producer.getConfiguration().getSslHandler();
        } else if (sslContext != null) {
            URI uri = new URI(nettyProducer.getEndpoint().getEndpointUri());
            SSLEngine sllEngine = sslContext.createSSLEngine(uri.getHost(), uri.getPort());
            sllEngine.setUseClientMode(true);
            SSLParameters sslParameters = sllEngine.getSSLParameters();
            sslParameters.setServerNames(Arrays.asList(new SNIHostName(uri.getHost())));
            sllEngine.setSSLParameters(sslParameters);
            if (producer.getConfiguration().getSslContextParameters() == null) {
                // just set the enabledProtocols if the SslContextParameter doesn't set
                engine.setEnabledProtocols(producer.getConfiguration().getEnabledProtocols().split(","));
            }
            return new SslHandler(engine);
        }        return null;
    }
{code}

> netty4-http - Server Name Indication (SNI) Support
> --------------------------------------------------
>
>                 Key: CAMEL-14070
>                 URL: https://issues.apache.org/jira/browse/CAMEL-14070
>             Project: Camel
>          Issue Type: Improvement
>            Reporter: Göran Erkstam
>            Priority: Major
>
> Implement Server Name Indication (SNI) support for the netty4-http client.
> (Has been solved for HttpClient for many years https://issues.apache.org/jira/browse/HTTPCLIENT-1119)
> This could be implemented in the HttpClientInitializerFactory.configureClientSSLOnDemand like this:
> {code:java}
> private SslHandler configureClientSSLOnDemand() throws Exception {
>         if (!producer.getConfiguration().isSsl()) {
>             return null;
>         }        if (producer.getConfiguration().getSslHandler() != null) {
>             return producer.getConfiguration().getSslHandler();
>         } else if (sslContext != null) {
>             URI uri = new URI(nettyProducer.getEndpoint().getEndpointUri());
>             SSLEngine sllEngine = sslContext.createSSLEngine(uri.getHost(), uri.getPort());
>             sllEngine.setUseClientMode(true);
>             SSLParameters sslParameters = sllEngine.getSSLParameters();
>             sslParameters.setServerNames(Arrays.asList(new SNIHostName(uri.getHost())));
>             sllEngine.setSSLParameters(sslParameters);
>             if (producer.getConfiguration().getSslContextParameters() == null) {
>                 // just set the enabledProtocols if the SslContextParameter doesn't set
>                 engine.setEnabledProtocols(producer.getConfiguration().getEnabledProtocols().split(","));
>             }
>             return new SslHandler(engine);
>         }        return null;
>     }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)