@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.SSLInitializationException
public static SSLConnectionSocketFactory getSystemSocketFactory() throws org.apache.hc.core5.ssl.SSLInitializationException
org.apache.hc.core5.ssl.SSLInitializationException
protected 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
ConnectionSocketFactory
connectSocket
method.createSocket
in interface ConnectionSocketFactory
IOException
- 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
ConnectionSocketFactory
connectSocket
in interface ConnectionSocketFactory
connectTimeout
- 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
ConnectionSocketFactory
connectSocket
in interface ConnectionSocketFactory
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.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
LayeredConnectionSocketFactory
createLayeredSocket
in interface LayeredConnectionSocketFactory
socket
- 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
LayeredConnectionSocketFactory
createLayeredSocket
in interface LayeredConnectionSocketFactory
socket
- 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
SSLException
Copyright © 1999–2021 The Apache Software Foundation. All rights reserved.