- 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.ByteToMessageDecoderOptionalSslHandleris 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 voiddecode(io.netty5.channel.ChannelHandlerContext context, io.netty5.buffer.Buffer in)protected io.netty5.channel.ChannelHandlernewNonSslHandler(io.netty5.channel.ChannelHandlerContext context)Override to configure the ChannelHandler.protected StringnewNonSslHandlerName()Optionally specify the non-SSL handler name, this method may returnnull.protected SslHandlernewSslHandler(io.netty5.channel.ChannelHandlerContext context, SslContext sslContext)Override to configure the SslHandler eg.protected StringnewSslHandlerName()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.Buffer in) throws Exception- Specified by:
decodein 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- theChannelHandlerContextto use.sslContext- theSSLContextto use.- Returns:
- the
SslHandlerwhich will replace theOptionalSslHandlerin 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- theChannelHandlerContextto use.- Returns:
- the
ChannelHandlerwhich will replace theOptionalSslHandlerin the pipeline ornullto simply remove theOptionalSslHandlerif the traffic is non-SSL.
-
-