Package io.undertow.protocols.ssl
Class ALPNHackSSLEngine
java.lang.Object
javax.net.ssl.SSLEngine
io.undertow.protocols.ssl.ALPNHackSSLEngine
SSLEngine wrapper that provides some super hacky ALPN support on JDK8.
Even though this is a nasty hack that relies on JDK internals it is still preferable to modifying the boot class path.
It is expected to work with all JDK8 versions, however this cannot be guaranteed if the SSL internals are changed
in an incompatible way.
This class will go away once JDK8 is no longer in use.
- Author:
- Stuart Douglas
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidvoidJDK8 ALPN hack support method.String[]String[]booleanbooleanJDK8 ALPN hack support method.String[]String[]booleanbooleanstatic booleanbooleanbooleanvoidsetApplicationProtocols(List<String> applicationProtocols) JDK8 ALPN hack support method.voidsetEnabledCipherSuites(String[] strings) voidsetEnabledProtocols(String[] strings) voidsetEnableSessionCreation(boolean b) voidsetNeedClientAuth(boolean b) voidsetUseClientMode(boolean b) voidsetWantClientAuth(boolean b) unwrap(ByteBuffer dataToUnwrap, ByteBuffer[] byteBuffers, int i, int i1) wrap(ByteBuffer[] byteBuffers, int i, int i1, ByteBuffer byteBuffer) Methods inherited from class javax.net.ssl.SSLEngine
getApplicationProtocol, getHandshakeApplicationProtocol, getHandshakeApplicationProtocolSelector, getHandshakeSession, getPeerHost, getPeerPort, getSSLParameters, setHandshakeApplicationProtocolSelector, setSSLParameters, unwrap, unwrap, wrap, wrap
-
Field Details
-
ENABLED
public static final boolean ENABLED
-
-
Constructor Details
-
ALPNHackSSLEngine
-
-
Method Details
-
isEnabled
-
wrap
public SSLEngineResult wrap(ByteBuffer[] byteBuffers, int i, int i1, ByteBuffer byteBuffer) throws SSLException - Specified by:
wrapin classSSLEngine- Throws:
SSLException
-
unwrap
public SSLEngineResult unwrap(ByteBuffer dataToUnwrap, ByteBuffer[] byteBuffers, int i, int i1) throws SSLException - Specified by:
unwrapin classSSLEngine- Throws:
SSLException
-
getDelegatedTask
- Specified by:
getDelegatedTaskin classSSLEngine
-
closeInbound
- Specified by:
closeInboundin classSSLEngine- Throws:
SSLException
-
isInboundDone
public boolean isInboundDone()- Specified by:
isInboundDonein classSSLEngine
-
closeOutbound
public void closeOutbound()- Specified by:
closeOutboundin classSSLEngine
-
isOutboundDone
public boolean isOutboundDone()- Specified by:
isOutboundDonein classSSLEngine
-
getSupportedCipherSuites
- Specified by:
getSupportedCipherSuitesin classSSLEngine
-
getEnabledCipherSuites
- Specified by:
getEnabledCipherSuitesin classSSLEngine
-
setEnabledCipherSuites
- Specified by:
setEnabledCipherSuitesin classSSLEngine
-
getSupportedProtocols
- Specified by:
getSupportedProtocolsin classSSLEngine
-
getEnabledProtocols
- Specified by:
getEnabledProtocolsin classSSLEngine
-
setEnabledProtocols
- Specified by:
setEnabledProtocolsin classSSLEngine
-
getSession
- Specified by:
getSessionin classSSLEngine
-
beginHandshake
- Specified by:
beginHandshakein classSSLEngine- Throws:
SSLException
-
getHandshakeStatus
- Specified by:
getHandshakeStatusin classSSLEngine
-
setUseClientMode
public void setUseClientMode(boolean b) - Specified by:
setUseClientModein classSSLEngine
-
getUseClientMode
public boolean getUseClientMode()- Specified by:
getUseClientModein classSSLEngine
-
setNeedClientAuth
public void setNeedClientAuth(boolean b) - Specified by:
setNeedClientAuthin classSSLEngine
-
getNeedClientAuth
public boolean getNeedClientAuth()- Specified by:
getNeedClientAuthin classSSLEngine
-
setWantClientAuth
public void setWantClientAuth(boolean b) - Specified by:
setWantClientAuthin classSSLEngine
-
getWantClientAuth
public boolean getWantClientAuth()- Specified by:
getWantClientAuthin classSSLEngine
-
setEnableSessionCreation
public void setEnableSessionCreation(boolean b) - Specified by:
setEnableSessionCreationin classSSLEngine
-
getEnableSessionCreation
public boolean getEnableSessionCreation()- Specified by:
getEnableSessionCreationin classSSLEngine
-
setApplicationProtocols
JDK8 ALPN hack support method. These methods will be removed once JDK8 ALPN support is no longer required- Parameters:
applicationProtocols-
-
getApplicationProtocols
JDK8 ALPN hack support method. These methods will be removed once JDK8 ALPN support is no longer required -
getSelectedApplicationProtocol
JDK8 ALPN hack support method. These methods will be removed once JDK8 ALPN support is no longer required
-