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| 限定符和类型 | 字段和说明 |
|---|---|
protected AsyncMapping<java.lang.String,SslContext> |
mapping |
handshakeTimeoutMillisMAX_CLIENT_HELLO_LENGTHCOMPOSITE_CUMULATOR, MERGE_CUMULATOR| 构造器和说明 |
|---|
SniHandler(AsyncMapping<? super java.lang.String,? extends SslContext> mapping)
Creates a SNI detection handler with configured
SslContext
maintained by AsyncMapping |
SniHandler(AsyncMapping<? super java.lang.String,? extends SslContext> mapping,
int maxClientHelloLength,
long handshakeTimeoutMillis)
Creates a SNI detection handler with configured
SslContext
maintained by AsyncMapping |
SniHandler(AsyncMapping<? super java.lang.String,? extends SslContext> mapping,
long handshakeTimeoutMillis)
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 java.lang.String,? extends SslContext> mapping)
Creates a SNI detection handler with configured
SslContext
maintained by Mapping |
SniHandler(Mapping<? super java.lang.String,? extends SslContext> mapping,
int maxClientHelloLength,
long handshakeTimeoutMillis)
Creates a SNI detection handler with configured
SslContext
maintained by Mapping |
SniHandler(Mapping<? super java.lang.String,? extends SslContext> mapping,
long handshakeTimeoutMillis)
Creates a SNI detection handler with configured
SslContext
maintained by Mapping |
| 限定符和类型 | 方法和说明 |
|---|---|
java.lang.String |
hostname() |
protected Future<SslContext> |
lookup(ChannelHandlerContext ctx,
java.lang.String hostname)
The default implementation will simply call
AsyncMapping.map(Object, Promise) but
users can override this method to implement custom behavior. |
protected SslHandler |
newSslHandler(SslContext context,
ByteBufAllocator allocator)
|
protected void |
onLookupComplete(ChannelHandlerContext ctx,
java.lang.String hostname,
Future<SslContext> future)
Called upon completion of the
AbstractSniHandler.lookup(ChannelHandlerContext, String) Future. |
protected void |
replaceHandler(ChannelHandlerContext ctx,
java.lang.String hostname,
SslContext sslContext)
The default implementation of this method will simply replace
this SniHandler
instance with a SslHandler. |
SslContext |
sslContext() |
channelActive, handlerAdded, lookup, onLookupCompletebind, close, connect, decode, deregister, disconnect, flush, handlerRemoved0, read, writeactualReadableBytes, callDecode, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggeredchannelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaughtensureNotSharable, isSharableclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitexceptionCaught, handlerRemovedprotected final AsyncMapping<java.lang.String,SslContext> mapping
public SniHandler(Mapping<? super java.lang.String,? extends SslContext> mapping)
SslContext
maintained by Mappingmapping - the mapping of domain name to SslContextpublic SniHandler(Mapping<? super java.lang.String,? extends SslContext> mapping, int maxClientHelloLength, long handshakeTimeoutMillis)
SslContext
maintained by Mappingmapping - the mapping of domain name to SslContextmaxClientHelloLength - the maximum length of the client hello messagehandshakeTimeoutMillis - the handshake timeout in millisecondspublic SniHandler(DomainNameMapping<? extends SslContext> mapping)
SslContext
maintained by DomainNameMappingmapping - the mapping of domain name to SslContextpublic SniHandler(AsyncMapping<? super java.lang.String,? extends SslContext> mapping)
SslContext
maintained by AsyncMappingmapping - the mapping of domain name to SslContextpublic SniHandler(AsyncMapping<? super java.lang.String,? extends SslContext> mapping, int maxClientHelloLength, long handshakeTimeoutMillis)
SslContext
maintained by AsyncMappingmapping - the mapping of domain name to SslContextmaxClientHelloLength - the maximum length of the client hello messagehandshakeTimeoutMillis - the handshake timeout in millisecondspublic SniHandler(Mapping<? super java.lang.String,? extends SslContext> mapping, long handshakeTimeoutMillis)
SslContext
maintained by Mappingmapping - the mapping of domain name to SslContexthandshakeTimeoutMillis - the handshake timeout in millisecondspublic SniHandler(AsyncMapping<? super java.lang.String,? extends SslContext> mapping, long handshakeTimeoutMillis)
SslContext
maintained by AsyncMappingmapping - the mapping of domain name to SslContexthandshakeTimeoutMillis - the handshake timeout in millisecondspublic java.lang.String hostname()
public SslContext sslContext()
SslContextprotected Future<SslContext> lookup(ChannelHandlerContext ctx, java.lang.String hostname) throws java.lang.Exception
AsyncMapping.map(Object, Promise) but
users can override this method to implement custom behavior.lookup 在类中 AbstractSniHandler<SslContext>java.lang.ExceptionAsyncMapping.map(Object, Promise)protected final void onLookupComplete(ChannelHandlerContext ctx, java.lang.String hostname, Future<SslContext> future) throws java.lang.Exception
AbstractSniHandlerAbstractSniHandler.lookup(ChannelHandlerContext, String) Future.onLookupComplete 在类中 AbstractSniHandler<SslContext>java.lang.ExceptionAbstractSniHandler.lookup(ChannelHandlerContext, String)protected void replaceHandler(ChannelHandlerContext ctx, java.lang.String hostname, SslContext sslContext) throws java.lang.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.java.lang.Exceptionprotected SslHandler newSslHandler(SslContext context, ByteBufAllocator allocator)
SslHandler using the given SslContext and ByteBufAllocator.
Users may override this method to implement custom behavior.