Package io.netty.handler.ssl.ocsp
Class OcspServerCertificateValidator
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.handler.ssl.ocsp.OcspServerCertificateValidator
-
- All Implemented Interfaces:
io.netty.channel.ChannelHandler
,io.netty.channel.ChannelInboundHandler
public class OcspServerCertificateValidator extends io.netty.channel.ChannelInboundHandlerAdapter
OcspServerCertificateValidator
validates incoming server's certificate using OCSP. Once TLS handshake is completed,SslHandshakeCompletionEvent.SUCCESS
is fired, validator will perform certificate validation using OCSP over HTTP/1.1 with the server's certificate issuer OCSP responder.
-
-
Field Summary
Fields Modifier and Type Field Description static io.netty.util.AttributeKey<Boolean>
OCSP_PIPELINE_ATTRIBUTE
An attribute used to mark all channels created by theOcspServerCertificateValidator
.
-
Constructor Summary
Constructors Constructor Description OcspServerCertificateValidator()
Create a newOcspServerCertificateValidator
instance without nonce validation on OCSP response, using defaultIoTransport.DEFAULT
instance, defaultDnsNameResolver
implementation and withcloseAndThrowIfNotValid
set totrue
OcspServerCertificateValidator(boolean validateNonce)
Create a newOcspServerCertificateValidator
instance with defaultIoTransport.DEFAULT
instance and defaultDnsNameResolver
implementation andcloseAndThrowIfNotValid
set totrue
.OcspServerCertificateValidator(boolean closeAndThrowIfNotValid, boolean validateNonce, IoTransport ioTransport, io.netty.resolver.dns.DnsNameResolver dnsNameResolver)
Create a newIoTransport
instanceOcspServerCertificateValidator(boolean validateNonce, IoTransport ioTransport)
Create a newOcspServerCertificateValidator
instanceOcspServerCertificateValidator(boolean validateNonce, IoTransport ioTransport, io.netty.resolver.dns.DnsNameResolver dnsNameResolver)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static io.netty.resolver.dns.DnsNameResolver
createDefaultResolver(IoTransport ioTransport)
void
exceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause)
void
userEventTriggered(io.netty.channel.ChannelHandlerContext ctx, Object evt)
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelInactive, channelRead, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
-
-
-
-
Field Detail
-
OCSP_PIPELINE_ATTRIBUTE
public static final io.netty.util.AttributeKey<Boolean> OCSP_PIPELINE_ATTRIBUTE
An attribute used to mark all channels created by theOcspServerCertificateValidator
.
-
-
Constructor Detail
-
OcspServerCertificateValidator
public OcspServerCertificateValidator()
Create a newOcspServerCertificateValidator
instance without nonce validation on OCSP response, using defaultIoTransport.DEFAULT
instance, defaultDnsNameResolver
implementation and withcloseAndThrowIfNotValid
set totrue
-
OcspServerCertificateValidator
public OcspServerCertificateValidator(boolean validateNonce)
Create a newOcspServerCertificateValidator
instance with defaultIoTransport.DEFAULT
instance and defaultDnsNameResolver
implementation andcloseAndThrowIfNotValid
set totrue
.- Parameters:
validateNonce
- Set totrue
if we should force nonce validation on OCSP response else set tofalse
-
OcspServerCertificateValidator
public OcspServerCertificateValidator(boolean validateNonce, IoTransport ioTransport)
Create a newOcspServerCertificateValidator
instance- Parameters:
validateNonce
- Set totrue
if we should force nonce validation on OCSP response else set tofalse
ioTransport
-IoTransport
to use
-
OcspServerCertificateValidator
public OcspServerCertificateValidator(boolean validateNonce, IoTransport ioTransport, io.netty.resolver.dns.DnsNameResolver dnsNameResolver)
- Parameters:
validateNonce
- Set totrue
if we should force nonce validation on OCSP response else set tofalse
ioTransport
-IoTransport
to usednsNameResolver
-DnsNameResolver
implementation to use
-
OcspServerCertificateValidator
public OcspServerCertificateValidator(boolean closeAndThrowIfNotValid, boolean validateNonce, IoTransport ioTransport, io.netty.resolver.dns.DnsNameResolver dnsNameResolver)
Create a newIoTransport
instance- Parameters:
closeAndThrowIfNotValid
- If set totrue
then we will close the channel and throw an exception when certificate is notOcspResponse.Status.VALID
. If set tofalse
then we will simply pass theOcspValidationEvent
to the next handler in pipeline and let it decide what to do.validateNonce
- Set totrue
if we should force nonce validation on OCSP response else set tofalse
ioTransport
-IoTransport
to usednsNameResolver
-DnsNameResolver
implementation to use
-
-
Method Detail
-
createDefaultResolver
protected static io.netty.resolver.dns.DnsNameResolver createDefaultResolver(IoTransport ioTransport)
-
userEventTriggered
public void userEventTriggered(io.netty.channel.ChannelHandlerContext ctx, Object evt) throws Exception
- Specified by:
userEventTriggered
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
userEventTriggered
in classio.netty.channel.ChannelInboundHandlerAdapter
- Throws:
Exception
-
exceptionCaught
public void exceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause)
- Specified by:
exceptionCaught
in interfaceio.netty.channel.ChannelHandler
- Specified by:
exceptionCaught
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
exceptionCaught
in classio.netty.channel.ChannelInboundHandlerAdapter
-
-