- java.lang.Object
-
- io.netty5.channel.ChannelHandlerAdapter
-
- io.netty5.handler.codec.ByteToMessageDecoder
-
- io.netty5.handler.ssl.OptionalSslHandler
-
- All Implemented Interfaces:
ChannelHandler
public class OptionalSslHandler extends ByteToMessageDecoder
OptionalSslHandleris a utility decoder to support both SSL and non-SSL handlers based on the first message received.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.netty5.handler.codec.ByteToMessageDecoder
ByteToMessageDecoder.Cumulator
-
-
Field Summary
-
Fields inherited from class io.netty5.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR
-
-
Constructor Summary
Constructors Constructor Description OptionalSslHandler(SslContext sslContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voiddecode(ChannelHandlerContext context, Buffer in)Decode the from oneBufferto another.protected ChannelHandlernewNonSslHandler(ChannelHandlerContext context)Override to configure the ChannelHandler.protected StringnewNonSslHandlerName()Optionally specify the non-SSL handler name, this method may returnnull.protected SslHandlernewSslHandler(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(ChannelHandlerContext context, Buffer in) throws Exception
Description copied from class:ByteToMessageDecoderDecode the from oneBufferto another. This method will be called till either the inputBufferhas nothing to read when return from this method or till nothing was read from the inputBuffer.- Specified by:
decodein classByteToMessageDecoder- Parameters:
context- theChannelHandlerContextwhich thisByteToMessageDecoderbelongs toin- theBufferfrom which to read data- Throws:
Exception- is thrown if an error occurs
-
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(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 ChannelHandler newNonSslHandler(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.
-
-