org.apache.hc.client5.http.ssl

## Class DefaultClientTlsStrategy

- java.lang.Object
- - org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy

- All Implemented Interfaces:
    TlsSocketStrategy, org.apache.hc.core5.http.nio.ssl.TlsStrategy

      @Contract(threading=STATELESS)
      public class DefaultClientTlsStrategy
      extends Object

  TLS upgrade strategy for non-blocking client connections.
  Since:
    5.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DefaultClientTlsStrategy(SSLContext sslContext)`
    `DefaultClientTlsStrategy(SSLContext sslContext, HostnameVerificationPolicy hostnameVerificationPolicy, HostnameVerifier hostnameVerifier)`
    `DefaultClientTlsStrategy(SSLContext sslContext, HostnameVerifier hostnameVerifier)`
    `DefaultClientTlsStrategy(SSLContext sslContext, String[] supportedProtocols, String[] supportedCipherSuites, org.apache.hc.core5.reactor.ssl.SSLBufferMode sslBufferManagement, HostnameVerificationPolicy hostnameVerificationPolicy, HostnameVerifier hostnameVerifier)`
    `DefaultClientTlsStrategy(SSLContext sslContext, String[] supportedProtocols, String[] supportedCipherSuites, org.apache.hc.core5.reactor.ssl.SSLBufferMode sslBufferManagement, HostnameVerifier hostnameVerifier)`
    `DefaultClientTlsStrategy(SSLContext sslContext, String[] supportedProtocols, String[] supportedCipherSuites, org.apache.hc.core5.reactor.ssl.SSLBufferMode sslBufferManagement, HostnameVerifier hostnameVerifier, org.apache.hc.core5.function.Factory<SSLEngine,org.apache.hc.core5.reactor.ssl.TlsDetails> tlsDetailsFactory)` Deprecated. Use `DefaultClientTlsStrategy(SSLContext, String[], String[], SSLBufferMode, HostnameVerifier)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `static DefaultClientTlsStrategy` | `createDefault()`
    `static DefaultClientTlsStrategy` | `createSystemDefault()`
    `static org.apache.hc.core5.http.nio.ssl.TlsStrategy` | `getDefault()` Deprecated. Use `createDefault()`.
    `static org.apache.hc.core5.http.nio.ssl.TlsStrategy` | `getSystemDefault()` Deprecated. Use `createSystemDefault()`.
    `protected void` | `initializeEngine(SSLEngine sslEngine)`
    `protected void` | `initializeSocket(SSLSocket socket)`
    `SSLSocket` | `upgrade(Socket socket, String target, int port, Object attachment, org.apache.hc.core5.http.protocol.HttpContext context)` Upgrades the given plain socket and executes the TLS handshake over it.
    `boolean` | `upgrade(org.apache.hc.core5.reactor.ssl.TransportSecurityLayer tlsSession, org.apache.hc.core5.http.HttpHost host, SocketAddress localAddress, SocketAddress remoteAddress, Object attachment, org.apache.hc.core5.util.Timeout handshakeTimeout)` Deprecated. use `upgrade(TransportSecurityLayer, NamedEndpoint, Object, Timeout, FutureCallback)`
    `void` | `upgrade(org.apache.hc.core5.reactor.ssl.TransportSecurityLayer tlsSession, org.apache.hc.core5.net.NamedEndpoint endpoint, Object attachment, org.apache.hc.core5.util.Timeout handshakeTimeout, org.apache.hc.core5.concurrent.FutureCallback<org.apache.hc.core5.reactor.ssl.TransportSecurityLayer> callback)`
    `protected void` | `verifySession(String hostname, SSLSession sslsession)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### DefaultClientTlsStrategy

          @Deprecated
          public DefaultClientTlsStrategy(SSLContext sslContext,
                                                      String[] supportedProtocols,
                                                      String[] supportedCipherSuites,
                                                      org.apache.hc.core5.reactor.ssl.SSLBufferMode sslBufferManagement,
                                                      HostnameVerifier hostnameVerifier,
                                                      org.apache.hc.core5.function.Factory<SSLEngine,org.apache.hc.core5.reactor.ssl.TlsDetails> tlsDetailsFactory)

      Deprecated. Use `DefaultClientTlsStrategy(SSLContext, String[], String[], SSLBufferMode, HostnameVerifier)`

    - #### DefaultClientTlsStrategy

          public DefaultClientTlsStrategy(SSLContext sslContext,
                                          String[] supportedProtocols,
                                          String[] supportedCipherSuites,
                                          org.apache.hc.core5.reactor.ssl.SSLBufferMode sslBufferManagement,
                                          HostnameVerificationPolicy hostnameVerificationPolicy,
                                          HostnameVerifier hostnameVerifier)

      Since:
        5.4

    - #### DefaultClientTlsStrategy

          public DefaultClientTlsStrategy(SSLContext sslContext,
                                          String[] supportedProtocols,
                                          String[] supportedCipherSuites,
                                          org.apache.hc.core5.reactor.ssl.SSLBufferMode sslBufferManagement,
                                          HostnameVerifier hostnameVerifier)

    - #### DefaultClientTlsStrategy

          public DefaultClientTlsStrategy(SSLContext sslContext,
                                          HostnameVerifier hostnameVerifier)

    - #### DefaultClientTlsStrategy

          public DefaultClientTlsStrategy(SSLContext sslContext,
                                          HostnameVerificationPolicy hostnameVerificationPolicy,
                                          HostnameVerifier hostnameVerifier)

      Since:
        5.4

    - #### DefaultClientTlsStrategy

          public DefaultClientTlsStrategy(SSLContext sslContext)

  - ### Method Detail

    - #### createDefault

          public static DefaultClientTlsStrategy createDefault()

      Since:
        5.4

    - #### createSystemDefault

          public static DefaultClientTlsStrategy createSystemDefault()

      Since:
        5.4

    - #### getDefault

          @Deprecated
          public static org.apache.hc.core5.http.nio.ssl.TlsStrategy getDefault()

      Deprecated. Use `createDefault()`.

    - #### getSystemDefault

          @Deprecated
          public static org.apache.hc.core5.http.nio.ssl.TlsStrategy getSystemDefault()

      Deprecated. Use `createSystemDefault()`.

    - #### upgrade

          @Deprecated
          public boolean upgrade(org.apache.hc.core5.reactor.ssl.TransportSecurityLayer tlsSession,
                                             org.apache.hc.core5.http.HttpHost host,
                                             SocketAddress localAddress,
                                             SocketAddress remoteAddress,
                                             Object attachment,
                                             org.apache.hc.core5.util.Timeout handshakeTimeout)

      Deprecated. use `upgrade(TransportSecurityLayer, NamedEndpoint, Object, Timeout, FutureCallback)`
      Specified by:
        `upgrade` in interface `org.apache.hc.core5.http.nio.ssl.TlsStrategy`

    - #### upgrade

          public void upgrade(org.apache.hc.core5.reactor.ssl.TransportSecurityLayer tlsSession,
                              org.apache.hc.core5.net.NamedEndpoint endpoint,
                              Object attachment,
                              org.apache.hc.core5.util.Timeout handshakeTimeout,
                              org.apache.hc.core5.concurrent.FutureCallback<org.apache.hc.core5.reactor.ssl.TransportSecurityLayer> callback)

      Specified by:
        `upgrade` in interface `org.apache.hc.core5.http.nio.ssl.TlsStrategy`

    - #### initializeEngine

          protected void initializeEngine(SSLEngine sslEngine)

    - #### initializeSocket

          protected void initializeSocket(SSLSocket socket)

    - #### verifySession

          protected void verifySession(String hostname,
                                       SSLSession sslsession)
                                throws SSLException

      Throws:
        `SSLException`

    - #### upgrade

          public SSLSocket upgrade(Socket socket,
                                   String target,
                                   int port,
                                   Object attachment,
                                   org.apache.hc.core5.http.protocol.HttpContext context)
                            throws IOException

      Description copied from interface: `TlsSocketStrategy`
      Upgrades the given plain socket and executes the TLS handshake over it.
      Specified by:
        `upgrade` in interface `TlsSocketStrategy`
      Parameters:
        `socket` - the existing plain socket
        `target` - the name of the target host.
        `port` - the port to connect to on the target host.
        `attachment` - connect request attachment.
        `context` - the actual HTTP context.
      Returns:
        socket upgraded to TLS.
      Throws:
        `IOException`

Copyright © 1999–2021 The Apache Software Foundation. All rights reserved.