Example usage for org.apache.http.nio.reactor.ssl SSLMode CLIENT

List of usage examples for org.apache.http.nio.reactor.ssl SSLMode CLIENT

Introduction

In this page you can find the example usage for org.apache.http.nio.reactor.ssl SSLMode CLIENT.

Prototype

SSLMode CLIENT

To view the source code for org.apache.http.nio.reactor.ssl SSLMode CLIENT.

Click Source Link

Usage

From source file:org.aevans.goat.net.SSLStrategyGetter.java

public static SchemeIOSessionStrategy getSchemeIOSessionStrategy() {
    DefaultHostnameVerifier hostnameVerifier = new DefaultHostnameVerifier(
            PublicSuffixMatcherLoader.getDefault());
    SchemeIOSessionStrategy sioss = new SchemeIOSessionStrategy() {

        @Override//  w ww  . jav  a2s.  c  o m
        public boolean isLayeringRequired() {
            return true;
        }

        @Override
        public IOSession upgrade(final HttpHost host, final IOSession iosession) throws IOException {

            SSLSetupHandler handler = new SSLSetupHandler() {

                @Override
                public void initalize(SSLEngine sslengine) throws SSLException {
                }

                @Override
                public void verify(IOSession iosession, SSLSession sslsession) throws SSLException {
                    if (!hostnameVerifier.verify(host.getHostName(), sslsession)) {
                        final java.security.cert.Certificate[] certs = sslsession.getPeerCertificates();
                        final X509Certificate x509 = (X509Certificate) certs[0];
                        final X500Principal x500Principal = x509.getSubjectX500Principal();
                        throw new SSLPeerUnverifiedException("Host name '" + host.getHostName()
                                + "' does not match " + "the certificate subject provided by the peer ("
                                + x500Principal.toString() + ")");
                    }
                }

            };
            SSLBufferManagementStrategy sslbm = new ReleasableSSLBufferManagementStrategy();
            SSLIOSession ssio = new SSLIOSession(iosession, SSLMode.CLIENT, host, SSLContexts.createDefault(),
                    handler, sslbm);
            iosession.setAttribute(SSLIOSession.SESSION_KEY, ssio);
            ssio.initialize();
            return ssio;
        }

    };

    return sioss;
}

From source file:org.siddhiesb.transport.http.conn.ClientConnFactory.java

public DefaultNHttpClientConnection createConnection(final IOSession iosession, final HttpRoute route) {
    IOSession customSession;//from w ww  .j  a v a 2 s  .c  o  m
    if (ssl != null && route.isSecure() && !route.isTunnelled()) {
        SSLContext customContext = getSSLContext(iosession);
        SSLIOSession ssliosession = new SSLIOSession(iosession, SSLMode.CLIENT, customContext,
                ssl.getHandler());
        iosession.setAttribute(SSLIOSession.SESSION_KEY, ssliosession);
        customSession = ssliosession;
    } else {
        customSession = iosession;
    }
    DefaultNHttpClientConnection conn = org.siddhiesb.transport.http.conn.LoggingUtils
            .createClientConnection(customSession, responseFactory, allocator, params);
    int timeout = HttpConnectionParams.getSoTimeout(params);
    conn.setSocketTimeout(timeout);
    return conn;
}

From source file:org.siddhiesb.transport.http.conn.ClientConnFactory.java

public void upgrade(final UpgradableNHttpConnection conn) {
    if (ssl != null) {
        IOSession iosession = conn.getIOSession();
        if (!(iosession instanceof SSLIOSession)) {
            SSLContext customContext = getSSLContext(iosession);
            SSLIOSession ssliosession = new SSLIOSession(iosession, SSLMode.CLIENT, customContext,
                    ssl.getHandler());//  w w  w .j a  va 2s. c om
            iosession.setAttribute(SSLIOSession.SESSION_KEY, ssliosession);
            conn.bind(ssliosession);
        }
    }
}

From source file:org.apache.synapse.transport.http.conn.ClientConnFactory.java

public DefaultNHttpClientConnection createConnection(final IOSession iosession, final HttpRoute route) {
    IOSession customSession;// www .  ja  v a 2  s  . c  o  m
    if (ssl != null && route.isSecure() && !route.isTunnelled()) {
        SSLContext customContext = getSSLContext(iosession);
        SSLIOSession ssliosession = new SSLIOSession(iosession, SSLMode.CLIENT, customContext,
                ssl.getHandler());
        iosession.setAttribute(SSLIOSession.SESSION_KEY, ssliosession);
        customSession = ssliosession;
    } else {
        if (route != null && route.isTunnelled()) {
            org.apache.http.HttpHost httpHost = route.getTargetHost();
            String beAddress = null;
            String proxyAdd = null;
            if (httpHost != null) {
                String hostname = httpHost.getHostName();
                int port = httpHost.getPort();
                beAddress = hostname + ":" + port;
            }

            org.apache.http.HttpHost proxyHost = route.getProxyHost();
            if (proxyHost != null) {
                String proxyHostName = proxyHost.getHostName();
                int proxyPort = proxyHost.getPort();
                proxyAdd = proxyHostName + ":" + proxyPort;
            }

            if (sslByHostMap != null && sslByHostMap.containsKey(beAddress)) {
                SSLContext beCtx = sslByHostMap.get(beAddress);
                sslByHostMap.put(proxyAdd, beCtx);
            }
        }
        customSession = iosession;
    }
    DefaultNHttpClientConnection conn = LoggingUtils.createClientConnection(customSession, responseFactory,
            allocator, params);
    int timeout = HttpConnectionParams.getSoTimeout(params);
    conn.setSocketTimeout(timeout);
    return conn;
}