Skip to content

Commit bb87d66

Browse files
committed
validate Accept-Encoding header
1 parent dad6ae0 commit bb87d66

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

Diff for: client/src/test/java/org/asynchttpclient/AutomaticDecompressionTest.java

+16
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
import java.io.OutputStream;
1111
import java.net.InetSocketAddress;
1212
import java.nio.charset.StandardCharsets;
13+
import java.util.Arrays;
14+
import java.util.List;
15+
import java.util.stream.Collectors;
1316
import java.util.zip.GZIPOutputStream;
1417
import org.junit.jupiter.api.AfterAll;
1518
import org.junit.jupiter.api.BeforeAll;
@@ -26,6 +29,7 @@ public class AutomaticDecompressionTest {
2629
private static AsyncHttpClient createClient() {
2730
AsyncHttpClientConfig config = new DefaultAsyncHttpClientConfig.Builder()
2831
.setEnableAutomaticDecompression(true)
32+
.setCompressionEnforced(true)
2933
.build();
3034
return new DefaultAsyncHttpClient(config);
3135
}
@@ -38,6 +42,7 @@ static void setupServer() throws Exception {
3842
@Override
3943
public void handle(HttpExchange exchange)
4044
throws IOException {
45+
validateAcceptEncodingHeader(exchange);
4146
exchange.getResponseHeaders().set("Content-Encoding", "br");
4247
exchange.sendResponseHeaders(200, 0);
4348
OutputStream out = exchange.getResponseBody();
@@ -53,6 +58,7 @@ public void handle(HttpExchange exchange)
5358
@Override
5459
public void handle(HttpExchange exchange)
5560
throws IOException {
61+
validateAcceptEncodingHeader(exchange);
5662
exchange.getResponseHeaders().set("Content-Encoding", "zstd");
5763
byte[] compressedData = new byte[UNCOMPRESSED_PAYLOAD.length()];
5864
long n = Zstd.compress(compressedData, UNCOMPRESSED_PAYLOAD.getBytes(StandardCharsets.UTF_8), 2, true);
@@ -68,6 +74,7 @@ public void handle(HttpExchange exchange)
6874
@Override
6975
public void handle(HttpExchange exchange)
7076
throws IOException {
77+
validateAcceptEncodingHeader(exchange);
7178
exchange.getResponseHeaders().set("Content-Encoding", "gzip");
7279
exchange.sendResponseHeaders(200, 0);
7380
OutputStream out = exchange.getResponseBody();
@@ -81,6 +88,15 @@ public void handle(HttpExchange exchange)
8188
HTTP_SERVER.start();
8289
}
8390

91+
private static void validateAcceptEncodingHeader(HttpExchange exchange) {
92+
Headers requestHeaders = exchange.getRequestHeaders();
93+
List<String> acceptEncodingList = requestHeaders.get("Accept-Encoding")
94+
.stream()
95+
.flatMap(x -> Arrays.asList(x.split(",")).stream())
96+
.collect(Collectors.toList());
97+
assertEquals(List.of("gzip", "deflate", "br", "zstd"), acceptEncodingList);
98+
}
99+
84100
@AfterAll
85101
static void stopServer() {
86102
if (HTTP_SERVER != null) {

0 commit comments

Comments
 (0)