Example usage for org.apache.http.impl.nio.client HttpAsyncClientBuilder setSSLContext

List of usage examples for org.apache.http.impl.nio.client HttpAsyncClientBuilder setSSLContext

Introduction

In this page you can find the example usage for org.apache.http.impl.nio.client HttpAsyncClientBuilder setSSLContext.

Prototype

public final HttpAsyncClientBuilder setSSLContext(final SSLContext sslcontext) 

Source Link

Document

Assigns SSLContext instance.

Usage

From source file:HCNIOEngine.java

private CloseableHttpAsyncClient createCloseableHttpAsyncClient() throws Exception {
    HttpAsyncClientBuilder builder = HttpAsyncClientBuilder.create();
    builder.useSystemProperties();/*  www.j av a  2 s  .c  o m*/
    builder.setSSLContext(SSLContext.getDefault());
    builder.setConnectionReuseStrategy(DefaultConnectionReuseStrategy.INSTANCE);
    builder.setMaxConnPerRoute(2);
    builder.setMaxConnTotal(2);
    builder.setDefaultRequestConfig(RequestConfig.custom().setConnectionRequestTimeout(1000)
            .setConnectTimeout(2000).setSocketTimeout(2000).build());
    //        builder.setHttpProcessor()
    CloseableHttpAsyncClient hc = builder.build();
    hc.start();
    return hc;
}

From source file:com.streamsets.pipeline.lib.elasticsearch.ElasticsearchStageDelegate.java

private void buildSSLContext(List<Stage.ConfigIssue> issues, RestClientBuilder restClientBuilder)
        throws IOException {
    try {//ww w.  j  a v a  2 s .  c  o m
        final SSLContext sslcontext;
        final String keyStorePath = conf.securityConfig.sslTrustStorePath;
        if (StringUtils.isEmpty(keyStorePath)) {
            sslcontext = SSLContext.getDefault();
        } else {
            String keyStorePass = null;
            try {
                keyStorePass = conf.securityConfig.sslTrustStorePassword.get();
            } catch (StageException e) {
                issues.add(context.createConfigIssue(Groups.ELASTIC_SEARCH.name(),
                        SecurityConfig.CONF_PREFIX + "sslTrustStorePassword", Errors.ELASTICSEARCH_31,
                        e.toString()));
            }

            if (StringUtils.isEmpty(keyStorePass)) {
                issues.add(context.createConfigIssue(Groups.ELASTIC_SEARCH.name(),
                        SecurityConfig.CONF_PREFIX + "sslTrustStorePassword", Errors.ELASTICSEARCH_10));
            }
            Path path = Paths.get(keyStorePath);
            if (!Files.exists(path)) {
                issues.add(context.createConfigIssue(Groups.ELASTIC_SEARCH.name(),
                        SecurityConfig.CONF_PREFIX + "sslTrustStorePath", Errors.ELASTICSEARCH_11,
                        keyStorePath));
            }
            KeyStore keyStore = KeyStore.getInstance("jks");
            try (InputStream is = Files.newInputStream(path)) {
                keyStore.load(is, keyStorePass.toCharArray());
            }
            sslcontext = SSLContexts.custom().loadTrustMaterial(keyStore, null).build();
        }
        restClientBuilder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
            @Override
            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                return httpClientBuilder.setSSLContext(sslcontext);
            }
        });
    } catch (KeyStoreException | NoSuchAlgorithmException | KeyManagementException | CertificateException e) {
        issues.add(context.createConfigIssue(Groups.ELASTIC_SEARCH.name(),
                SecurityConfig.CONF_PREFIX + "sslTrustStorePath", Errors.ELASTICSEARCH_12, e.toString(), e));
    }
}

From source file:org.apache.camel.component.olingo2.Olingo2Component.java

private Olingo2AppWrapper createOlingo2App(Olingo2Configuration configuration) {

    HttpAsyncClientBuilder clientBuilder = configuration.getHttpAsyncClientBuilder();
    if (clientBuilder == null) {
        clientBuilder = HttpAsyncClientBuilder.create();

        // apply simple configuration properties
        final RequestConfig.Builder requestConfigBuilder = RequestConfig.custom();
        requestConfigBuilder.setConnectTimeout(configuration.getConnectTimeout());
        requestConfigBuilder.setSocketTimeout(configuration.getSocketTimeout());

        final HttpHost proxy = configuration.getProxy();
        if (proxy != null) {
            requestConfigBuilder.setProxy(proxy);
        }/*from ww w . j  a v  a2s  .  co  m*/

        // set default request config
        clientBuilder.setDefaultRequestConfig(requestConfigBuilder.build());

        SSLContextParameters sslContextParameters = configuration.getSslContextParameters();
        if (sslContextParameters == null) {
            // use defaults if not specified
            sslContextParameters = new SSLContextParameters();
        }
        try {
            clientBuilder.setSSLContext(sslContextParameters.createSSLContext());
        } catch (GeneralSecurityException e) {
            throw ObjectHelper.wrapRuntimeCamelException(e);
        } catch (IOException e) {
            throw ObjectHelper.wrapRuntimeCamelException(e);
        }
    }

    apiProxy = new Olingo2AppWrapper(new Olingo2AppImpl(configuration.getServiceUri(), clientBuilder));
    apiProxy.getOlingo2App().setContentType(configuration.getContentType());
    apiProxy.getOlingo2App().setHttpHeaders(configuration.getHttpHeaders());

    return apiProxy;
}

From source file:org.apache.nifi.remote.util.SiteToSiteRestApiClient.java

private void setupAsyncClient() {
    final HttpAsyncClientBuilder clientBuilder = HttpAsyncClients.custom();

    if (sslContext != null) {
        clientBuilder.setSSLContext(sslContext);
        clientBuilder.addInterceptorFirst(new HttpsResponseInterceptor());
    }//from   w  w  w .j  ava 2 s  .c o  m

    httpAsyncClient = clientBuilder.setDefaultCredentialsProvider(getCredentialsProvider()).build();
    httpAsyncClient.start();
}

From source file:org.janusgraph.diskstorage.es.rest.util.SSLConfigurationCallback.java

@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
    final SSLContext sslcontext;

    final TrustStrategy trustStrategy = allowSelfSignedCertificates ? new TrustSelfSignedStrategy() : null;

    try {//from w ww  . ja  v a  2 s .c  o  m
        if (StringUtils.isNotEmpty(trustStoreFile)) {
            sslContextBuilder.loadTrustMaterial(new File(trustStoreFile), trustStorePassword.toCharArray(),
                    trustStrategy);
        } else {
            sslContextBuilder.loadTrustMaterial(trustStrategy);
        }
    } catch (KeyStoreException | CertificateException | NoSuchAlgorithmException e) {
        throw new RuntimeException("Invalid trust store file " + trustStoreFile, e);
    } catch (IOException e) {
        throw new RuntimeException("Unable to load trust store data from " + trustStoreFile, e);
    }

    try {
        if (StringUtils.isNotEmpty(keyStoreFile)) {
            sslContextBuilder.loadKeyMaterial(new File(keyStoreFile), keyStorePassword.toCharArray(),
                    keyPassword.toCharArray());
        }
    } catch (KeyStoreException | CertificateException | NoSuchAlgorithmException
            | UnrecoverableKeyException e) {
        throw new RuntimeException("Invalid key store file " + keyStoreFile, e);
    } catch (IOException e) {
        throw new RuntimeException("Unable to load key store data from " + keyStoreFile, e);
    }

    try {
        sslcontext = sslContextBuilder.build();
    } catch (KeyManagementException | NoSuchAlgorithmException e) {
        throw new RuntimeException("SSL context initialization failed", e);
    }

    httpClientBuilder.setSSLContext(sslcontext);

    if (disableHostNameVerification) {
        httpClientBuilder.setSSLHostnameVerifier(new NoopHostnameVerifier());
    }

    return httpClientBuilder;
}

From source file:org.elasticsearch.client.documentation.RestClientDocumentation.java

@SuppressWarnings("unused")
public void testCommonConfiguration() throws Exception {
    {//from   w  w  w  .ja v a  2  s.  c o  m
        //tag::rest-client-config-timeouts
        RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200))
                .setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
                    @Override
                    public RequestConfig.Builder customizeRequestConfig(
                            RequestConfig.Builder requestConfigBuilder) {
                        return requestConfigBuilder.setConnectTimeout(5000).setSocketTimeout(60000);
                    }
                }).setMaxRetryTimeoutMillis(60000);
        //end::rest-client-config-timeouts
    }
    {
        //tag::rest-client-config-threads
        RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200))
                .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(
                            HttpAsyncClientBuilder httpClientBuilder) {
                        return httpClientBuilder.setDefaultIOReactorConfig(
                                IOReactorConfig.custom().setIoThreadCount(1).build());
                    }
                });
        //end::rest-client-config-threads
    }
    {
        //tag::rest-client-config-basic-auth
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("user", "password"));

        RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200))
                .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(
                            HttpAsyncClientBuilder httpClientBuilder) {
                        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                });
        //end::rest-client-config-basic-auth
    }
    {
        //tag::rest-client-config-disable-preemptive-auth
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials("user", "password"));

        RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200))
                .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(
                            HttpAsyncClientBuilder httpClientBuilder) {
                        httpClientBuilder.disableAuthCaching(); // <1>
                        return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                    }
                });
        //end::rest-client-config-disable-preemptive-auth
    }
    {
        Path keyStorePath = Paths.get("");
        String keyStorePass = "";
        //tag::rest-client-config-encrypted-communication
        KeyStore truststore = KeyStore.getInstance("jks");
        try (InputStream is = Files.newInputStream(keyStorePath)) {
            truststore.load(is, keyStorePass.toCharArray());
        }
        SSLContextBuilder sslBuilder = SSLContexts.custom().loadTrustMaterial(truststore, null);
        final SSLContext sslContext = sslBuilder.build();
        RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "https"))
                .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                    @Override
                    public HttpAsyncClientBuilder customizeHttpClient(
                            HttpAsyncClientBuilder httpClientBuilder) {
                        return httpClientBuilder.setSSLContext(sslContext);
                    }
                });
        //end::rest-client-config-encrypted-communication
    }
}