diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameReader.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameReader.java index 85ebdc224d..0cea4b5c61 100644 --- a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameReader.java +++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameReader.java @@ -78,6 +78,7 @@ public class DefaultHttp2FrameReader implements Http2FrameReader, Http2FrameSize /** * Create a new instance. * @param validateHeaders {@code true} to validate headers. {@code false} to not validate headers. + * @see {@link DefaultHttp2HeadersDecoder(boolean)} */ public DefaultHttp2FrameReader(boolean validateHeaders) { this(new DefaultHttp2HeadersDecoder(validateHeaders)); diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameWriter.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameWriter.java index 53066118b2..6ff98f1b3d 100644 --- a/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameWriter.java +++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/DefaultHttp2FrameWriter.java @@ -84,6 +84,10 @@ public class DefaultHttp2FrameWriter implements Http2FrameWriter, Http2FrameSize this(new DefaultHttp2HeadersEncoder()); } + public DefaultHttp2FrameWriter(Http2HeadersEncoder.SensitivityDetector headersSensativityDetector) { + this(new DefaultHttp2HeadersEncoder(Http2CodecUtil.DEFAULT_HEADER_TABLE_SIZE, headersSensativityDetector)); + } + public DefaultHttp2FrameWriter(Http2HeadersEncoder headersEncoder) { this.headersEncoder = headersEncoder; maxFrameSize = DEFAULT_MAX_FRAME_SIZE; diff --git a/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java b/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java index 97f788b18e..39bd146320 100644 --- a/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java +++ b/codec-http2/src/main/java/io/netty/handler/codec/http2/Http2ConnectionHandler.java @@ -89,6 +89,8 @@ public class Http2ConnectionHandler extends ByteToMessageDecoder implements Http private Http2Settings initialSettings = new Http2Settings(); private Http2FrameListener frameListener; private Http2FrameLogger frameLogger; + private Http2HeadersEncoder.SensitivityDetector headersSensativityDetector = + Http2HeadersEncoder.NEVER_SENSITIVE; private boolean validateHeaders = true; private boolean server = true; private boolean encoderEnforceMaxConcurrentStreams; @@ -166,6 +168,14 @@ public class Http2ConnectionHandler extends ByteToMessageDecoder implements Http return thisB(); } + /** + * Set the {@link Http2HeadersEncoder.SensitivityDetector} that will be used. + */ + public B headersSensativityDetector(Http2HeadersEncoder.SensitivityDetector headersSensativityDetector) { + this.headersSensativityDetector = checkNotNull(headersSensativityDetector, "headersSensativityDetector"); + return thisB(); + } + /** * Create a new {@link Http2Connection} and build a new instance. */ @@ -181,7 +191,7 @@ public class Http2ConnectionHandler extends ByteToMessageDecoder implements Http */ public final T build(Http2Connection connection) { Http2FrameReader reader = new DefaultHttp2FrameReader(validateHeaders); - Http2FrameWriter writer = new DefaultHttp2FrameWriter(); + Http2FrameWriter writer = new DefaultHttp2FrameWriter(headersSensativityDetector); if (frameLogger != null) { reader = new Http2InboundFrameLogger(reader, frameLogger); writer = new Http2OutboundFrameLogger(writer, frameLogger); @@ -205,9 +215,13 @@ public class Http2ConnectionHandler extends ByteToMessageDecoder implements Http * Build a new instance with an existing {@link Http2ConnectionDecoder} and {@link Http2ConnectionEncoder}. *

* Methods that will be ignored due to objects already being created: - *

+ * */ public final T build(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder) { final T handler;