Package org.apache.hc.client5.http.ssl
Class AbstractClientTlsStrategy
- java.lang.Object
-
- org.apache.hc.client5.http.ssl.AbstractClientTlsStrategy
-
- All Implemented Interfaces:
TlsSocketStrategy,org.apache.hc.core5.http.nio.ssl.TlsStrategy
- Direct Known Subclasses:
DefaultClientTlsStrategy
@Contract(threading=STATELESS) abstract class AbstractClientTlsStrategy extends java.lang.Object implements org.apache.hc.core5.http.nio.ssl.TlsStrategy, TlsSocketStrategy
-
-
Field Summary
Fields Modifier and Type Field Description private HostnameVerificationPolicyhostnameVerificationPolicyprivate javax.net.ssl.HostnameVerifierhostnameVerifierprivate static org.slf4j.LoggerLOGprivate org.apache.hc.core5.reactor.ssl.SSLBufferModesslBufferManagementprivate javax.net.ssl.SSLContextsslContextprivate java.lang.String[]supportedCipherSuitesprivate java.lang.String[]supportedProtocols
-
Constructor Summary
Constructors Constructor Description AbstractClientTlsStrategy(javax.net.ssl.SSLContext sslContext, java.lang.String[] supportedProtocols, java.lang.String[] supportedCipherSuites, org.apache.hc.core5.reactor.ssl.SSLBufferMode sslBufferManagement, HostnameVerificationPolicy hostnameVerificationPolicy, javax.net.ssl.HostnameVerifier hostnameVerifier)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description (package private) abstract voidapplyParameters(javax.net.ssl.SSLEngine sslEngine, javax.net.ssl.SSLParameters sslParameters, java.lang.String[] appProtocols)(package private) abstract org.apache.hc.core5.reactor.ssl.TlsDetailscreateTlsDetails(javax.net.ssl.SSLEngine sslEngine)private voidexecuteHandshake(javax.net.ssl.SSLSocket upgradedSocket, java.lang.String target, java.lang.Object attachment)protected voidinitializeEngine(javax.net.ssl.SSLEngine sslEngine)protected voidinitializeSocket(javax.net.ssl.SSLSocket socket)(package private) java.lang.StringtoEscapedString(javax.security.auth.x500.X500Principal principal)Converts an X500Principal to a cleaned string by escaping control characters.javax.net.ssl.SSLSocketupgrade(java.net.Socket socket, java.lang.String target, int port, java.lang.Object attachment, org.apache.hc.core5.http.protocol.HttpContext context)Upgrades the given plain socket and executes the TLS handshake over it.booleanupgrade(org.apache.hc.core5.reactor.ssl.TransportSecurityLayer tlsSession, org.apache.hc.core5.http.HttpHost host, java.net.SocketAddress localAddress, java.net.SocketAddress remoteAddress, java.lang.Object attachment, org.apache.hc.core5.util.Timeout handshakeTimeout)voidupgrade(org.apache.hc.core5.reactor.ssl.TransportSecurityLayer tlsSession, org.apache.hc.core5.net.NamedEndpoint endpoint, java.lang.Object attachment, org.apache.hc.core5.util.Timeout handshakeTimeout, org.apache.hc.core5.concurrent.FutureCallback<org.apache.hc.core5.reactor.ssl.TransportSecurityLayer> callback)protected voidverifySession(java.lang.String hostname, javax.net.ssl.SSLSession sslsession)(package private) voidverifySession(java.lang.String hostname, javax.net.ssl.SSLSession sslsession, javax.net.ssl.HostnameVerifier hostnameVerifier)
-
-
-
Field Detail
-
LOG
private static final org.slf4j.Logger LOG
-
sslContext
private final javax.net.ssl.SSLContext sslContext
-
supportedProtocols
private final java.lang.String[] supportedProtocols
-
supportedCipherSuites
private final java.lang.String[] supportedCipherSuites
-
sslBufferManagement
private final org.apache.hc.core5.reactor.ssl.SSLBufferMode sslBufferManagement
-
hostnameVerificationPolicy
private final HostnameVerificationPolicy hostnameVerificationPolicy
-
hostnameVerifier
private final javax.net.ssl.HostnameVerifier hostnameVerifier
-
-
Constructor Detail
-
AbstractClientTlsStrategy
AbstractClientTlsStrategy(javax.net.ssl.SSLContext sslContext, java.lang.String[] supportedProtocols, java.lang.String[] supportedCipherSuites, org.apache.hc.core5.reactor.ssl.SSLBufferMode sslBufferManagement, HostnameVerificationPolicy hostnameVerificationPolicy, javax.net.ssl.HostnameVerifier hostnameVerifier)
-
-
Method Detail
-
upgrade
@Deprecated public boolean upgrade(org.apache.hc.core5.reactor.ssl.TransportSecurityLayer tlsSession, org.apache.hc.core5.http.HttpHost host, java.net.SocketAddress localAddress, java.net.SocketAddress remoteAddress, java.lang.Object attachment, org.apache.hc.core5.util.Timeout handshakeTimeout)- Specified by:
upgradein interfaceorg.apache.hc.core5.http.nio.ssl.TlsStrategy
-
upgrade
public void upgrade(org.apache.hc.core5.reactor.ssl.TransportSecurityLayer tlsSession, org.apache.hc.core5.net.NamedEndpoint endpoint, java.lang.Object attachment, org.apache.hc.core5.util.Timeout handshakeTimeout, org.apache.hc.core5.concurrent.FutureCallback<org.apache.hc.core5.reactor.ssl.TransportSecurityLayer> callback)- Specified by:
upgradein interfaceorg.apache.hc.core5.http.nio.ssl.TlsStrategy
-
applyParameters
abstract void applyParameters(javax.net.ssl.SSLEngine sslEngine, javax.net.ssl.SSLParameters sslParameters, java.lang.String[] appProtocols)
-
createTlsDetails
abstract org.apache.hc.core5.reactor.ssl.TlsDetails createTlsDetails(javax.net.ssl.SSLEngine sslEngine)
-
initializeEngine
protected void initializeEngine(javax.net.ssl.SSLEngine sslEngine)
-
initializeSocket
protected void initializeSocket(javax.net.ssl.SSLSocket socket)
-
verifySession
protected void verifySession(java.lang.String hostname, javax.net.ssl.SSLSession sslsession) throws javax.net.ssl.SSLException- Throws:
javax.net.ssl.SSLException
-
upgrade
public javax.net.ssl.SSLSocket upgrade(java.net.Socket socket, java.lang.String target, int port, java.lang.Object attachment, org.apache.hc.core5.http.protocol.HttpContext context) throws java.io.IOExceptionDescription copied from interface:TlsSocketStrategyUpgrades the given plain socket and executes the TLS handshake over it.- Specified by:
upgradein interfaceTlsSocketStrategy- Parameters:
socket- the existing plain 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.- Returns:
- socket upgraded to TLS.
- Throws:
java.io.IOException
-
executeHandshake
private void executeHandshake(javax.net.ssl.SSLSocket upgradedSocket, java.lang.String target, java.lang.Object attachment) throws java.io.IOException- Throws:
java.io.IOException
-
verifySession
void verifySession(java.lang.String hostname, javax.net.ssl.SSLSession sslsession, javax.net.ssl.HostnameVerifier hostnameVerifier) throws javax.net.ssl.SSLException- Throws:
javax.net.ssl.SSLException
-
toEscapedString
@Internal java.lang.String toEscapedString(javax.security.auth.x500.X500Principal principal)
Converts an X500Principal to a cleaned string by escaping control characters.This method processes the RFC2253 format of the X500Principal and escapes any ISO control characters to avoid issues in logging or other outputs. Control characters are replaced with their escaped hexadecimal representation.
Note: For testing purposes, this method is package-private to allow access within the same package. This allows tests to verify the correct behavior of the escaping process.
- Parameters:
principal- the X500Principal to escape- Returns:
- the escaped string representation of the X500Principal
-
-