Package org.glassfish.grizzly.sni
Class SNIFilter
- java.lang.Object
-
- org.glassfish.grizzly.filterchain.BaseFilter
-
- org.glassfish.grizzly.ssl.SSLBaseFilter
-
- org.glassfish.grizzly.ssl.SSLFilter
-
- org.glassfish.grizzly.sni.SNIFilter
-
- All Implemented Interfaces:
org.glassfish.grizzly.filterchain.Filter
public class SNIFilter extends org.glassfish.grizzly.ssl.SSLFilterTLS Server Name Indication (SNI)Filterimplementation. This filter supports SNI extension on both client and server sides, however the client side logic works on JDK 7+ only. On the server-side this filter allows developers to set customSSLEngineConfigurator, based on the host name provided by the client in the SSL CLIENT_HELLO message. AnSNIServerConfigResolverregistered viasetServerSSLConfigResolver(org.glassfish.grizzly.sni.SNIServerConfigResolver)would be responsible for customizingSSLEngineConfigurator. On the other hand for client-side it's not mandatory to registerSNIClientConfigResolver, because the host name information could be obtained from theConnection.getPeerAddress(). HoweverSNIClientConfigResolvercould be used to customize the host name.- Author:
- Alexey Stashok
-
-
Constructor Summary
Constructors Constructor Description SNIFilter()SNIFilter(org.glassfish.grizzly.ssl.SSLEngineConfigurator serverSSLEngineConfigurator, org.glassfish.grizzly.ssl.SSLEngineConfigurator clientSSLEngineConfigurator)Construct an SNIFilter with the given default client and server sideSSLEngineConfigurator.SNIFilter(org.glassfish.grizzly.ssl.SSLEngineConfigurator serverSSLEngineConfigurator, org.glassfish.grizzly.ssl.SSLEngineConfigurator clientSSLEngineConfigurator, boolean renegotiateOnClientAuthWant)Construct an SNIFilter with the given defaultSSLEngineConfigurator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected org.glassfish.grizzly.ssl.SSLBaseFilter.SSLTransportFilterWrappercreateOptimizedTransportFilter(org.glassfish.grizzly.filterchain.TransportFilter childFilter)SNIClientConfigResolvergetClientSSLConfigResolver()SNIServerConfigResolvergetServerSSLConfigResolver()org.glassfish.grizzly.filterchain.NextActionhandleConnect(org.glassfish.grizzly.filterchain.FilterChainContext ctx)org.glassfish.grizzly.filterchain.NextActionhandleRead(org.glassfish.grizzly.filterchain.FilterChainContext ctx)voidsetClientSSLConfigResolver(SNIClientConfigResolver resolver)SetsSNIClientConfigResolver, which is responsible for customizingSSLEngineConfiguratorand SNI host name to be sent to a server.voidsetServerSSLConfigResolver(SNIServerConfigResolver resolver)SetsSNIServerConfigResolver, which is responsible for customizingSSLEngineConfiguratorfor newly acceptedConnections, based on SNI host name information sent by a client.-
Methods inherited from class org.glassfish.grizzly.ssl.SSLFilter
createClientSSLEngine, doHandshakeStep, getClientSSLEngineConfigurator, getMaxPendingBytesPerConnection, handleWrite, handshake, handshake, handshake, handshake, notifyHandshakeComplete, notifyHandshakeFailed, setMaxPendingBytesPerConnection
-
Methods inherited from class org.glassfish.grizzly.ssl.SSLBaseFilter
addHandshakeListener, createSslConnectionContext, doHandshakeStep, doHandshakeSync, getHandshakeTimeout, getOptimizedTransportFilter, getPeerCertificateChain, getServerSSLEngineConfigurator, handleEvent, isRenegotiateOnClientAuthWant, notifyHandshakeInit, notifyHandshakeStart, obtainSslConnectionContext, onAdded, onRemoved, removeHandshakeListener, renegotiate, setHandshakeTimeout, setRenegotiationDisabled, unwrapAll, wrapAll
-
-
-
-
Constructor Detail
-
SNIFilter
public SNIFilter()
-
SNIFilter
public SNIFilter(org.glassfish.grizzly.ssl.SSLEngineConfigurator serverSSLEngineConfigurator, org.glassfish.grizzly.ssl.SSLEngineConfigurator clientSSLEngineConfigurator)Construct an SNIFilter with the given default client and server sideSSLEngineConfigurator.- Parameters:
serverSSLEngineConfigurator-clientSSLEngineConfigurator-
-
SNIFilter
public SNIFilter(org.glassfish.grizzly.ssl.SSLEngineConfigurator serverSSLEngineConfigurator, org.glassfish.grizzly.ssl.SSLEngineConfigurator clientSSLEngineConfigurator, boolean renegotiateOnClientAuthWant)Construct an SNIFilter with the given defaultSSLEngineConfigurator.- Parameters:
serverSSLEngineConfigurator- SSLEngine configurator for server side connectionsclientSSLEngineConfigurator- SSLEngine configurator for client side connectionsrenegotiateOnClientAuthWant-
-
-
Method Detail
-
getServerSSLConfigResolver
public SNIServerConfigResolver getServerSSLConfigResolver()
- Returns:
SNIServerConfigResolver, which is responsible for customizingSSLEngineConfiguratorfor newly acceptedConnections, based on SNI host name information sent by a client
-
setServerSSLConfigResolver
public void setServerSSLConfigResolver(SNIServerConfigResolver resolver)
SetsSNIServerConfigResolver, which is responsible for customizingSSLEngineConfiguratorfor newly acceptedConnections, based on SNI host name information sent by a client.- Parameters:
resolver-SNIServerConfigResolver
-
getClientSSLConfigResolver
public SNIClientConfigResolver getClientSSLConfigResolver()
- Returns:
SNIClientConfigResolver, which is responsible for customizingSSLEngineConfiguratorand SNI host name to be sent to a server
-
setClientSSLConfigResolver
public void setClientSSLConfigResolver(SNIClientConfigResolver resolver)
SetsSNIClientConfigResolver, which is responsible for customizingSSLEngineConfiguratorand SNI host name to be sent to a server.- Parameters:
resolver-
-
createOptimizedTransportFilter
protected org.glassfish.grizzly.ssl.SSLBaseFilter.SSLTransportFilterWrapper createOptimizedTransportFilter(org.glassfish.grizzly.filterchain.TransportFilter childFilter)
- Overrides:
createOptimizedTransportFilterin classorg.glassfish.grizzly.ssl.SSLBaseFilter
-
handleConnect
public org.glassfish.grizzly.filterchain.NextAction handleConnect(org.glassfish.grizzly.filterchain.FilterChainContext ctx) throws IOException- Specified by:
handleConnectin interfaceorg.glassfish.grizzly.filterchain.Filter- Overrides:
handleConnectin classorg.glassfish.grizzly.filterchain.BaseFilter- Throws:
IOException
-
handleRead
public org.glassfish.grizzly.filterchain.NextAction handleRead(org.glassfish.grizzly.filterchain.FilterChainContext ctx) throws IOException- Specified by:
handleReadin interfaceorg.glassfish.grizzly.filterchain.Filter- Overrides:
handleReadin classorg.glassfish.grizzly.ssl.SSLBaseFilter- Throws:
IOException
-
-