Package jodd.http.net
Class SocketHttpConnectionProvider
- java.lang.Object
-
- jodd.http.net.SocketHttpConnectionProvider
-
- All Implemented Interfaces:
HttpConnectionProvider
- Direct Known Subclasses:
SSLSocketHttpConnectionProvider
public class SocketHttpConnectionProvider extends java.lang.Object implements HttpConnectionProvider
Socket factory for HTTP proxy.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jodd.http.HttpConnectionProvider
HttpConnectionProvider.Implementation
-
-
Field Summary
Fields Modifier and Type Field Description protected ProxyInfoproxyprotected java.lang.StringsecureEnabledProtocolsprotected java.lang.StringsslProtocol
-
Constructor Summary
Constructors Constructor Description SocketHttpConnectionProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HttpConnectioncreateHttpConnection(HttpRequest httpRequest)Creates new connection from currentrequest.protected java.net.SocketcreateSocket(java.lang.String host, int port, int connectionTimeout)Creates a socket using socket factory.protected javax.net.ssl.SSLSocketcreateSSLSocket(java.lang.String host, int port, int connectionTimeout, boolean trustAll, boolean verifyHttpsHost)Creates a SSL socket.protected javax.net.ssl.SSLSocketFactorygetDefaultSSLSocketFactory(boolean trustAllCertificates)Returns default SSL socket factory allowing setting trust managers.java.lang.StringgetSslProtocol()Returns current SSL protocol used.protected javax.net.SocketFactoryresolveSocketFactory(ProxyInfo proxy, boolean ssl, boolean trustAllCertificates, int connectionTimeout)Returns socket factory based on proxy type and SSL requirements.voidsetSecuredProtocols(java.lang.String secureEnabledProtocols)CSV of default enabled secured protocols.SocketHttpConnectionProvidersetSslProtocol(java.lang.String sslProtocol)Sets default SSL protocol to use.voiduseProxy(ProxyInfo proxyInfo)Defines proxy to use for created sockets.
-
-
-
Field Detail
-
proxy
protected ProxyInfo proxy
-
secureEnabledProtocols
protected java.lang.String secureEnabledProtocols
-
sslProtocol
protected java.lang.String sslProtocol
-
-
Method Detail
-
useProxy
public void useProxy(ProxyInfo proxyInfo)
Defines proxy to use for created sockets.- Specified by:
useProxyin interfaceHttpConnectionProvider
-
setSecuredProtocols
public void setSecuredProtocols(java.lang.String secureEnabledProtocols)
CSV of default enabled secured protocols. By default the value is read from system propertyhttps.protocols.
-
getSslProtocol
public java.lang.String getSslProtocol()
Returns current SSL protocol used.
-
setSslProtocol
public SocketHttpConnectionProvider setSslProtocol(java.lang.String sslProtocol)
Sets default SSL protocol to use. One of "SSL", "TLSv1.2", "TLSv1.1", "TLSv1".
-
createHttpConnection
public HttpConnection createHttpConnection(HttpRequest httpRequest) throws java.io.IOException
Creates new connection from currentrequest.- Specified by:
createHttpConnectionin interfaceHttpConnectionProvider- Throws:
java.io.IOException- See Also:
createSocket(String, int, int)
-
createSocket
protected java.net.Socket createSocket(java.lang.String host, int port, int connectionTimeout) throws java.io.IOExceptionCreates a socket using socket factory.- Throws:
java.io.IOException
-
createSSLSocket
protected javax.net.ssl.SSLSocket createSSLSocket(java.lang.String host, int port, int connectionTimeout, boolean trustAll, boolean verifyHttpsHost) throws java.io.IOExceptionCreates a SSL socket. Enables default secure enabled protocols if specified.- Throws:
java.io.IOException
-
getDefaultSSLSocketFactory
protected javax.net.ssl.SSLSocketFactory getDefaultSSLSocketFactory(boolean trustAllCertificates) throws java.io.IOExceptionReturns default SSL socket factory allowing setting trust managers.- Throws:
java.io.IOException
-
resolveSocketFactory
protected javax.net.SocketFactory resolveSocketFactory(ProxyInfo proxy, boolean ssl, boolean trustAllCertificates, int connectionTimeout) throws java.io.IOException
Returns socket factory based on proxy type and SSL requirements.- Throws:
java.io.IOException
-
-