Example usage for io.netty.handler.codec.http HttpHeaderValues TRAILERS

List of usage examples for io.netty.handler.codec.http HttpHeaderValues TRAILERS

Introduction

In this page you can find the example usage for io.netty.handler.codec.http HttpHeaderValues TRAILERS.

Prototype

AsciiString TRAILERS

To view the source code for io.netty.handler.codec.http HttpHeaderValues TRAILERS.

Click Source Link

Document

"trailers"

Usage

From source file:com.linecorp.armeria.internal.ArmeriaHttpUtil.java

License:Apache License

/**
 * Filter the {@link HttpHeaderNames#TE} header according to the
 * <a href="https://tools.ietf.org/html/rfc7540#section-8.1.2.2">special rules in the HTTP/2 RFC</a>.
 * @param entry An entry whose name is {@link HttpHeaderNames#TE}.
 * @param out the resulting HTTP/2 headers.
 *///from w ww.  j  a va 2 s. c o  m
private static void toHttp2HeadersFilterTE(Entry<CharSequence, CharSequence> entry, HttpHeaders out) {
    if (AsciiString.indexOf(entry.getValue(), ',', 0) == -1) {
        if (AsciiString.contentEqualsIgnoreCase(AsciiString.trim(entry.getValue()),
                HttpHeaderValues.TRAILERS)) {
            out.add(HttpHeaderNames.TE, HttpHeaderValues.TRAILERS.toString());
        }
    } else {
        final List<CharSequence> teValues = StringUtil.unescapeCsvFields(entry.getValue());
        for (CharSequence teValue : teValues) {
            if (AsciiString.contentEqualsIgnoreCase(AsciiString.trim(teValue), HttpHeaderValues.TRAILERS)) {
                out.add(HttpHeaderNames.TE, HttpHeaderValues.TRAILERS.toString());
                break;
            }
        }
    }
}

From source file:com.linecorp.armeria.internal.ArmeriaHttpUtilTest.java

License:Apache License

@Test
public void stripTEHeadersExcludingTrailers() {
    final io.netty.handler.codec.http.HttpHeaders in = new io.netty.handler.codec.http.DefaultHttpHeaders();
    in.add(HttpHeaderNames.TE, HttpHeaderValues.GZIP);
    in.add(HttpHeaderNames.TE, HttpHeaderValues.TRAILERS);
    final HttpHeaders out = new DefaultHttpHeaders();
    toArmeria(in, out);//www  .  j  a va2  s  . com
    assertThat(out.get(HttpHeaderNames.TE)).isEqualTo(HttpHeaderValues.TRAILERS.toString());
}

From source file:com.linecorp.armeria.internal.ArmeriaHttpUtilTest.java

License:Apache License

@Test
public void stripTEHeadersCsvSeparatedExcludingTrailers() {
    final io.netty.handler.codec.http.HttpHeaders in = new io.netty.handler.codec.http.DefaultHttpHeaders();
    in.add(HttpHeaderNames.TE, HttpHeaderValues.GZIP + "," + HttpHeaderValues.TRAILERS);
    final HttpHeaders out = new DefaultHttpHeaders();
    toArmeria(in, out);/*  w  w w .  j av  a  2s  .c  o m*/
    assertThat(out.get(HttpHeaderNames.TE)).isEqualTo(HttpHeaderValues.TRAILERS.toString());
}

From source file:com.linecorp.armeria.internal.ArmeriaHttpUtilTest.java

License:Apache License

@Test
public void stripTEHeadersCsvSeparatedAccountsForValueSimilarToTrailers() {
    final io.netty.handler.codec.http.HttpHeaders in = new io.netty.handler.codec.http.DefaultHttpHeaders();
    in.add(HttpHeaderNames.TE, HttpHeaderValues.GZIP + "," + HttpHeaderValues.TRAILERS + "foo");
    final HttpHeaders out = new DefaultHttpHeaders();
    toArmeria(in, out);/*www .ja va  2  s  . c o  m*/
    assertThat(out.contains(HttpHeaderNames.TE)).isFalse();
}

From source file:com.linecorp.armeria.internal.ArmeriaHttpUtilTest.java

License:Apache License

@Test
public void stripTEHeadersAccountsForValueSimilarToTrailers() {
    final io.netty.handler.codec.http.HttpHeaders in = new io.netty.handler.codec.http.DefaultHttpHeaders();
    in.add(HttpHeaderNames.TE, HttpHeaderValues.TRAILERS + "foo");
    final HttpHeaders out = new DefaultHttpHeaders();
    toArmeria(in, out);/* ww w .  j a va2s .  co  m*/
    assertThat(out.contains(HttpHeaderNames.TE)).isFalse();
}

From source file:com.linecorp.armeria.internal.ArmeriaHttpUtilTest.java

License:Apache License

@Test
public void stripTEHeadersAccountsForOWS() {
    final io.netty.handler.codec.http.HttpHeaders in = new io.netty.handler.codec.http.DefaultHttpHeaders();
    in.add(HttpHeaderNames.TE, " " + HttpHeaderValues.TRAILERS + ' ');
    final HttpHeaders out = new DefaultHttpHeaders();
    toArmeria(in, out);/*  w  w  w  . ja va  2 s.co  m*/
    assertThat(out.get(HttpHeaderNames.TE)).isEqualTo(HttpHeaderValues.TRAILERS.toString());
}

From source file:com.linecorp.armeria.internal.http.ArmeriaHttpUtil.java

License:Apache License

public static void toArmeria(io.netty.handler.codec.http.HttpHeaders inHeaders, HttpHeaders out) {
    final Iterator<Entry<CharSequence, CharSequence>> i = inHeaders.iteratorCharSequence();
    while (i.hasNext()) {
        final Entry<CharSequence, CharSequence> entry = i.next();
        final AsciiString aName = AsciiString.of(entry.getKey()).toLowerCase();
        if (!HTTP_TO_HTTP2_HEADER_BLACKLIST.contains(aName)) {
            // https://tools.ietf.org/html/rfc7540#section-8.1.2.2 makes a special exception for TE
            if (aName.contentEqualsIgnoreCase(HttpHeaderNames.TE)
                    && !AsciiString.contentEqualsIgnoreCase(entry.getValue(), HttpHeaderValues.TRAILERS)) {
                continue;
            }/*from w  w w.j  a  v a  2  s. c  o  m*/

            out.add(aName, entry.getValue().toString());
        }
    }
}