类 io.netty.handler.codec.http2.Http2HeadersEncoder.SensitivityDetector 源码实例Demo

下面列出了怎么用 io.netty.handler.codec.http2.Http2HeadersEncoder.SensitivityDetector 的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: netty-4.1.22   文件: HpackEncoder.java

private void encodeHeadersEnforceMaxHeaderListSize(int streamId, ByteBuf out, Http2Headers headers,
                                                   SensitivityDetector sensitivityDetector)
        throws Http2Exception {
    long headerSize = 0;
    // To ensure we stay consistent with our peer check the size is valid before we potentially modify HPACK state.
    for (Map.Entry<CharSequence, CharSequence> header : headers) {
        CharSequence name = header.getKey();
        CharSequence value = header.getValue();
        // OK to increment now and check for bounds after because this value is limited to unsigned int and will not
        // overflow.
        headerSize += HpackHeaderField.sizeOf(name, value);
        if (headerSize > maxHeaderListSize) {
            headerListSizeExceeded(streamId, maxHeaderListSize, false);
        }
    }
    encodeHeadersIgnoreMaxHeaderListSize(out, headers, sensitivityDetector);
}
 
源代码2 项目: netty-4.1.22   文件: HpackEncoder.java

/**
 * Encode the header field into the header block.
 *
 * <strong>The given {@link CharSequence}s must be immutable!</strong>
 */
public void encodeHeaders(int streamId, ByteBuf out, Http2Headers headers, SensitivityDetector sensitivityDetector)
        throws Http2Exception {
    if (ignoreMaxHeaderListSize) {
        encodeHeadersIgnoreMaxHeaderListSize(out, headers, sensitivityDetector);
    } else {
        encodeHeadersEnforceMaxHeaderListSize(streamId, out, headers, sensitivityDetector);
    }
}
 
源代码3 项目: netty-4.1.22   文件: HpackEncoder.java

private void encodeHeadersIgnoreMaxHeaderListSize(ByteBuf out, Http2Headers headers,
                                                  SensitivityDetector sensitivityDetector) throws Http2Exception {
    for (Map.Entry<CharSequence, CharSequence> header : headers) {
        CharSequence name = header.getKey();
        CharSequence value = header.getValue();
        encodeHeader(out, name, value, sensitivityDetector.isSensitive(name, value),
                     HpackHeaderField.sizeOf(name, value));
    }
}
 

public DefaultHttp2FrameWriter(SensitivityDetector headersSensitivityDetector) {
    this(new DefaultHttp2HeadersEncoder(headersSensitivityDetector));
}
 

public DefaultHttp2FrameWriter(SensitivityDetector headersSensitivityDetector, boolean ignoreMaxHeaderListSize) {
    this(new DefaultHttp2HeadersEncoder(headersSensitivityDetector, ignoreMaxHeaderListSize));
}
 

/**
 * Returns the {@link SensitivityDetector} to use.
 */
protected SensitivityDetector headerSensitivityDetector() {
    return headerSensitivityDetector != null ? headerSensitivityDetector : DEFAULT_HEADER_SENSITIVITY_DETECTOR;
}
 
 类方法
 同包方法