@Contract(threading=STATELESS) public class SSLConnectionSocketFactory extends Object implements LayeredConnectionSocketFactory
SSLSocketFactory can be used to validate the identity of the HTTPS server against a list of trusted certificates and to authenticate to the HTTPS server using a private key.
| Constructor and Description | 
|---|
| SSLConnectionSocketFactory(SSLContext sslContext) | 
| SSLConnectionSocketFactory(SSLContext sslContext,
                          HostnameVerifier hostnameVerifier) | 
| SSLConnectionSocketFactory(SSLContext sslContext,
                          String[] supportedProtocols,
                          String[] supportedCipherSuites,
                          HostnameVerifier hostnameVerifier) | 
| SSLConnectionSocketFactory(SSLSocketFactory socketFactory,
                          HostnameVerifier hostnameVerifier) | 
| SSLConnectionSocketFactory(SSLSocketFactory socketFactory,
                          String[] supportedProtocols,
                          String[] supportedCipherSuites,
                          HostnameVerifier hostnameVerifier) | 
| Modifier and Type | Method and Description | 
|---|---|
| Socket | connectSocket(org.apache.hc.core5.util.TimeValue connectTimeout,
             Socket socket,
             org.apache.hc.core5.http.HttpHost host,
             InetSocketAddress remoteAddress,
             InetSocketAddress localAddress,
             org.apache.hc.core5.http.protocol.HttpContext context)Connects the socket to the target host with the given resolved remote address. | 
| Socket | createLayeredSocket(Socket socket,
                   String target,
                   int port,
                   org.apache.hc.core5.http.protocol.HttpContext context)Returns a socket connected to the given host that is layered over an
 existing socket. | 
| Socket | createSocket(org.apache.hc.core5.http.protocol.HttpContext context)Creates new, unconnected socket. | 
| static SSLConnectionSocketFactory | getSocketFactory()Obtains default SSL socket factory with an SSL context based on the standard JSSE
 trust material ( cacertsfile in the security properties directory). | 
| static SSLConnectionSocketFactory | getSystemSocketFactory()Obtains default SSL socket factory with an SSL context based on system properties
 as described in
 
 Java™ Secure Socket Extension (JSSE) Reference Guide. | 
| protected void | prepareSocket(SSLSocket socket)Performs any custom initialization for a newly created SSLSocket
 (before the SSL handshake happens). | 
| protected void | verifySession(String hostname,
             SSLSession sslSession) | 
public SSLConnectionSocketFactory(SSLContext sslContext)
public SSLConnectionSocketFactory(SSLContext sslContext, HostnameVerifier hostnameVerifier)
public SSLConnectionSocketFactory(SSLContext sslContext, String[] supportedProtocols, String[] supportedCipherSuites, HostnameVerifier hostnameVerifier)
public SSLConnectionSocketFactory(SSLSocketFactory socketFactory, HostnameVerifier hostnameVerifier)
public SSLConnectionSocketFactory(SSLSocketFactory socketFactory, String[] supportedProtocols, String[] supportedCipherSuites, HostnameVerifier hostnameVerifier)
public static SSLConnectionSocketFactory getSocketFactory() throws org.apache.hc.core5.ssl.SSLInitializationException
cacerts file in the security properties directory).
 System properties are not taken into consideration.org.apache.hc.core5.ssl.SSLInitializationExceptionpublic static SSLConnectionSocketFactory getSystemSocketFactory() throws org.apache.hc.core5.ssl.SSLInitializationException
org.apache.hc.core5.ssl.SSLInitializationExceptionprotected void prepareSocket(SSLSocket socket) throws IOException
SSLSocket.setEnabledCipherSuites(String[]).IOException - may be thrown if overriddenpublic Socket createSocket(org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
ConnectionSocketFactoryconnectSocket method.createSocket in interface ConnectionSocketFactoryIOException - if an I/O error occurs while creating the socketpublic Socket connectSocket(org.apache.hc.core5.util.TimeValue connectTimeout, Socket socket, org.apache.hc.core5.http.HttpHost host, InetSocketAddress remoteAddress, InetSocketAddress localAddress, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
ConnectionSocketFactoryconnectSocket in interface ConnectionSocketFactoryconnectTimeout - connect timeout.socket - the socket to connect, as obtained from ConnectionSocketFactory.createSocket(HttpContext).
 null indicates that a new socket should be created and connected.host - target host as specified by the caller (end user).remoteAddress - the resolved remote address to connect to.localAddress - the local address to bind the socket to, or null for any.context - the actual HTTP context.sock argument if this factory supports
          a layered protocol.IOException - if an I/O error occurspublic Socket createLayeredSocket(Socket socket, String target, int port, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
LayeredConnectionSocketFactorycreateLayeredSocket in interface LayeredConnectionSocketFactorysocket - the existing sockettarget - the name of the target host.port - the port to connect to on the target host.context - the actual HTTP context.IOException - if an I/O error occurs while creating the socketprotected void verifySession(String hostname, SSLSession sslSession) throws SSLException
SSLExceptionCopyright © 1999–2021 The Apache Software Foundation. All rights reserved.