public class SniHandler extends AbstractSniHandler<SslContext>
Enables SNI (Server Name Indication) extension for server side SSL. For clients support SNI, the server could have multiple host name bound on a single IP. The client will send host name in the handshake data so server could decide which certificate to choose for the host name.
ByteToMessageDecoder.CumulatorChannelHandler.Sharable| Modifier and Type | Field and Description |
|---|---|
protected AsyncMapping<String,SslContext> |
mapping |
COMPOSITE_CUMULATOR, MERGE_CUMULATOR| Constructor and Description |
|---|
SniHandler(AsyncMapping<? super String,? extends SslContext> mapping)
Creates a SNI detection handler with configured
SslContext
maintained by AsyncMapping |
SniHandler(DomainNameMapping<? extends SslContext> mapping)
Creates a SNI detection handler with configured
SslContext
maintained by DomainNameMapping |
SniHandler(Mapping<? super String,? extends SslContext> mapping)
Creates a SNI detection handler with configured
SslContext
maintained by Mapping |
| Modifier and Type | Method and Description |
|---|---|
String |
hostname() |
protected Future<SslContext> |
lookup(ChannelHandlerContext ctx,
String hostname)
The default implementation will simply call
AsyncMapping.map(Object, Promise) but
users can override this method to implement custom behavior. |
protected void |
onLookupComplete(ChannelHandlerContext ctx,
String hostname,
Future<SslContext> future)
Called upon completion of the
AbstractSniHandler.lookup(ChannelHandlerContext, String) Future. |
protected void |
replaceHandler(ChannelHandlerContext ctx,
String hostname,
SslContext sslContext)
The default implementation of this method will simply replace
this SniHandler
instance with a SslHandler. |
SslContext |
sslContext() |
bind, close, connect, decode, deregister, disconnect, flush, read, writeactualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggeredchannelActive, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaughtensureNotSharable, handlerAdded, isSharableclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitexceptionCaught, handlerAdded, handlerRemovedprotected final AsyncMapping<String,SslContext> mapping
public SniHandler(Mapping<? super String,? extends SslContext> mapping)
SslContext
maintained by Mappingmapping - the mapping of domain name to SslContextpublic SniHandler(DomainNameMapping<? extends SslContext> mapping)
SslContext
maintained by DomainNameMappingmapping - the mapping of domain name to SslContextpublic SniHandler(AsyncMapping<? super String,? extends SslContext> mapping)
SslContext
maintained by AsyncMappingmapping - the mapping of domain name to SslContextpublic String hostname()
public SslContext sslContext()
SslContextprotected Future<SslContext> lookup(ChannelHandlerContext ctx, String hostname) throws Exception
AsyncMapping.map(Object, Promise) but
users can override this method to implement custom behavior.lookup in class AbstractSniHandler<SslContext>ExceptionAsyncMapping.map(Object, Promise)protected final void onLookupComplete(ChannelHandlerContext ctx, String hostname, Future<SslContext> future) throws Exception
AbstractSniHandlerAbstractSniHandler.lookup(ChannelHandlerContext, String) Future.onLookupComplete in class AbstractSniHandler<SslContext>ExceptionAbstractSniHandler.lookup(ChannelHandlerContext, String)protected void replaceHandler(ChannelHandlerContext ctx, String hostname, SslContext sslContext) throws Exception
this SniHandler
instance with a SslHandler. Users may override this method to implement custom behavior.
Please be aware that this method may get called after a client has already disconnected and
custom implementations must take it into consideration when overriding this method.
It's also possible for the hostname argument to be null.ExceptionCopyright © 2008–2017 The Netty Project. All rights reserved.