@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.
|
protected void |
connectSocket(Socket sock,
InetSocketAddress remoteAddress,
org.apache.hc.core5.util.Timeout connectTimeout,
org.apache.hc.core5.http.protocol.HttpContext context)
Connects the socket to the target host with the given resolved remote address using
Socket.connect(SocketAddress, int) . |
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.
|
Socket |
createSocket(Proxy proxy,
org.apache.hc.core5.http.protocol.HttpContext context)
Creates new, unconnected socket via a proxy (generally SOCKS is expected).
|
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)
Deprecated.
|
protected void |
prepareSocket(SSLSocket socket,
org.apache.hc.core5.http.protocol.HttpContext context)
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
@Deprecated protected void prepareSocket(SSLSocket socket) throws IOException
prepareSocket(SSLSocket, HttpContext)
IOException
protected void prepareSocket(SSLSocket socket, org.apache.hc.core5.http.protocol.HttpContext context) 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
public Socket createSocket(Proxy proxy, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
ConnectionSocketFactory
connectSocket
method.createSocket
in interface ConnectionSocketFactory
IOException
public 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 occursprotected void connectSocket(Socket sock, InetSocketAddress remoteAddress, org.apache.hc.core5.util.Timeout connectTimeout, org.apache.hc.core5.http.protocol.HttpContext context) throws IOException
Socket.connect(SocketAddress, int)
. This method may be overridden to customize
how precisely Socket.connect(SocketAddress, int)
is handled without impacting
other connection establishment code within executeHandshake(SSLSocket, String, Object, HttpContext)
,
for example.sock
- the socket to connect.remoteAddress
- the resolved remote address to connect to.connectTimeout
- connect timeout.context
- the actual HTTP context.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.