@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(Socket socket,
org.apache.hc.core5.http.HttpHost host,
InetSocketAddress remoteAddress,
InetSocketAddress localAddress,
org.apache.hc.core5.util.Timeout connectTimeout,
Object attachment,
org.apache.hc.core5.http.protocol.HttpContext context)
Connects the socket to the target host with the given resolved remote address.
|
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 |
createLayeredSocket(Socket socket,
String target,
int port,
Object attachment,
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 (
cacerts file 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 connectSocket(Socket socket, org.apache.hc.core5.http.HttpHost host, InetSocketAddress remoteAddress, InetSocketAddress localAddress, org.apache.hc.core5.util.Timeout connectTimeout, Object attachment, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
ConnectionSocketFactoryconnectSocket in interface ConnectionSocketFactorysocket - 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.connectTimeout - connect timeout.attachment - connect request attachment.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 socketpublic Socket createLayeredSocket(Socket socket, String target, int port, Object attachment, 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.attachment - connect request attachment.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.