Skip to content

Commit 84f8606

Browse files
sknot-rhppatierno
authored andcommitted
Forwarded headers test (#334)
* Forwarded headres test Signed-off-by: Stanislav Knot <[email protected]> * fix Signed-off-by: Stanislav Knot <[email protected]>
1 parent 8014786 commit 84f8606

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

src/test/java/io/strimzi/kafka/bridge/http/ConsumerTest.java

+34
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import io.strimzi.kafka.bridge.config.BridgeConfig;
1010
import io.strimzi.kafka.bridge.http.model.HttpBridgeError;
1111
import io.strimzi.kafka.bridge.utils.Urls;
12+
import io.vertx.core.MultiMap;
13+
import io.vertx.core.http.CaseInsensitiveHeaders;
1214
import io.vertx.core.json.JsonArray;
1315
import io.vertx.core.json.JsonObject;
1416
import io.vertx.ext.web.client.HttpResponse;
@@ -235,6 +237,38 @@ void createConsumerWithForwardedHeader(VertxTestContext context) throws Interrup
235237
assertTrue(context.awaitCompletion(TEST_TIMEOUT, TimeUnit.SECONDS));
236238
}
237239

240+
@Test
241+
void createConsumerWithMultipleForwardedHeaders(VertxTestContext context) throws InterruptedException {
242+
String forwarded = "host=my-api-gateway-host:443;proto=https";
243+
String forwarded2 = "host=my-api-another-gateway-host:886;proto=http";
244+
245+
String baseUri = "https://my-api-gateway-host:443/consumers/" + groupId + "/instances/" + name;
246+
247+
// we have to use MultiMap because of https://github.com/vert-x3/vertx-web/issues/1383
248+
MultiMap headers = new CaseInsensitiveHeaders();
249+
headers.add(FORWARDED, forwarded);
250+
headers.add(FORWARDED, forwarded2);
251+
252+
consumerService().createConsumerRequest(groupId, consumerWithEarliestReset)
253+
.putHeaders(headers)
254+
.sendJsonObject(consumerWithEarliestReset, ar -> {
255+
context.verify(() -> {
256+
assertTrue(ar.succeeded());
257+
HttpResponse<JsonObject> response = ar.result();
258+
assertEquals(HttpResponseStatus.OK.code(), response.statusCode());
259+
JsonObject bridgeResponse = response.body();
260+
String consumerInstanceId = bridgeResponse.getString("instance_id");
261+
String consumerBaseUri = bridgeResponse.getString("base_uri");
262+
assertEquals(name, consumerInstanceId);
263+
assertEquals(baseUri, consumerBaseUri);
264+
});
265+
context.completeNow();
266+
});
267+
268+
assertTrue(context.awaitCompletion(TEST_TIMEOUT, TimeUnit.SECONDS));
269+
}
270+
271+
238272
@Test
239273
void createConsumerWithForwardedPathHeader(VertxTestContext context) throws InterruptedException {
240274
// this test emulates a create consumer request coming from an API gateway/proxy

0 commit comments

Comments
 (0)