List of usage examples for io.netty.handler.codec.http HttpHeaderValues TRAILERS
AsciiString TRAILERS
To view the source code for io.netty.handler.codec.http HttpHeaderValues TRAILERS.
Click Source Link
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()); } } }