- java.lang.Object
-
- io.netty5.channel.ChannelHandlerAdapter
-
- io.netty5.handler.codec.ByteToMessageDecoder
-
- io.netty5.handler.ssl.OptionalSslHandler
-
- All Implemented Interfaces:
io.netty5.channel.ChannelHandler
public class OptionalSslHandler extends io.netty5.handler.codec.ByteToMessageDecoder
OptionalSslHandler
is a utility decoder to support both SSL and non-SSL handlers based on the first message received.
-
-
Constructor Summary
Constructors Constructor Description OptionalSslHandler(SslContext sslContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
decode(io.netty5.channel.ChannelHandlerContext context, io.netty5.buffer.api.Buffer in)
protected io.netty5.channel.ChannelHandler
newNonSslHandler(io.netty5.channel.ChannelHandlerContext context)
Override to configure the ChannelHandler.protected String
newNonSslHandlerName()
Optionally specify the non-SSL handler name, this method may returnnull
.protected SslHandler
newSslHandler(io.netty5.channel.ChannelHandlerContext context, SslContext sslContext)
Override to configure the SslHandler eg.protected String
newSslHandlerName()
Optionally specify the SSL handler name, this method may returnnull
.-
Methods inherited from class io.netty5.handler.codec.ByteToMessageDecoder
actualReadableBytes, channelInactive, channelRead, channelReadComplete, channelShutdown, decodeLast, discardSomeReadBytes, handlerAdded, handlerAdded0, handlerRemoved, handlerRemoved0, internalBuffer, isSharable, isSingleDecode, setSingleDecode
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty5.channel.ChannelHandler
bind, channelActive, channelExceptionCaught, channelInboundEvent, channelRegistered, channelUnregistered, channelWritabilityChanged, close, connect, deregister, disconnect, flush, pendingOutboundBytes, read, register, sendOutboundEvent, shutdown, write
-
-
-
-
Constructor Detail
-
OptionalSslHandler
public OptionalSslHandler(SslContext sslContext)
-
-
Method Detail
-
decode
protected void decode(io.netty5.channel.ChannelHandlerContext context, io.netty5.buffer.api.Buffer in) throws Exception
- Specified by:
decode
in classio.netty5.handler.codec.ByteToMessageDecoder
- Throws:
Exception
-
newSslHandlerName
protected String newSslHandlerName()
Optionally specify the SSL handler name, this method may returnnull
.- Returns:
- the name of the SSL handler.
-
newSslHandler
protected SslHandler newSslHandler(io.netty5.channel.ChannelHandlerContext context, SslContext sslContext)
Override to configure the SslHandler eg.SSLParameters.setEndpointIdentificationAlgorithm(String)
. The hostname and port is not known by this method so servers may want to override this method and use theSslContext.newHandler(BufferAllocator, String, int)
variant.- Parameters:
context
- theChannelHandlerContext
to use.sslContext
- theSSLContext
to use.- Returns:
- the
SslHandler
which will replace theOptionalSslHandler
in the pipeline if the traffic is SSL.
-
newNonSslHandlerName
protected String newNonSslHandlerName()
Optionally specify the non-SSL handler name, this method may returnnull
.- Returns:
- the name of the non-SSL handler.
-
newNonSslHandler
protected io.netty5.channel.ChannelHandler newNonSslHandler(io.netty5.channel.ChannelHandlerContext context)
Override to configure the ChannelHandler.- Parameters:
context
- theChannelHandlerContext
to use.- Returns:
- the
ChannelHandler
which will replace theOptionalSslHandler
in the pipeline ornull
to simply remove theOptionalSslHandler
if the traffic is non-SSL.
-
-