This is an automated email from the ASF dual-hosted git repository. kulagaivan pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new e5ab1649bdb CAMEL-20638: camel-platform-http - Do not return http request headers - FIX (#15162) e5ab1649bdb is described below commit e5ab1649bdb5c5a9c332af2c5b201c143f611539 Author: Ivan Kulaga <kulagaivanandreev...@gmail.com> AuthorDate: Wed Aug 14 23:49:43 2024 +0500 CAMEL-20638: camel-platform-http - Do not return http request headers - FIX (#15162) - fix typo in PlatformHttpEndpoint that was calling applyFilterToExternalHeaders in place where applyFilterToCamelHeaders must be called; added test that covers this behavior --- .../platform/http/PlatformHttpEndpoint.java | 2 +- .../http/JettyCustomPlatformHttpConsumer.java | 5 ++++ .../PlatformHttpReturnHttpRequestHeadersTest.java | 29 ++++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java index 99dc467c50d..9f88649c322 100644 --- a/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java +++ b/components/camel-platform-http/src/main/java/org/apache/camel/component/platform/http/PlatformHttpEndpoint.java @@ -183,7 +183,7 @@ public class PlatformHttpEndpoint extends DefaultEndpoint if (COMMON_HTTP_REQUEST_HEADERS.contains(headerName)) { return true; } - return headerFilterStrategy.applyFilterToExternalHeaders(headerName, headerValue, exchange); + return headerFilterStrategy.applyFilterToCamelHeaders(headerName, headerValue, exchange); } @Override diff --git a/components/camel-platform-http/src/test/java/org/apache/camel/component/platform/http/JettyCustomPlatformHttpConsumer.java b/components/camel-platform-http/src/test/java/org/apache/camel/component/platform/http/JettyCustomPlatformHttpConsumer.java index 9af330c2ec3..5ba75f86279 100644 --- a/components/camel-platform-http/src/test/java/org/apache/camel/component/platform/http/JettyCustomPlatformHttpConsumer.java +++ b/components/camel-platform-http/src/test/java/org/apache/camel/component/platform/http/JettyCustomPlatformHttpConsumer.java @@ -182,6 +182,11 @@ public class JettyCustomPlatformHttpConsumer extends DefaultConsumer implements } for (HttpField header : request.getHeaders()) { + String headerName = header.getName(); + String headerValue = header.getValue(); + if (getEndpoint().getHeaderFilterStrategy().applyFilterToExternalHeaders(headerName, headerValue, exchange)) { + continue; + } message.setHeader(header.getName(), header.getValue()); } diff --git a/components/camel-platform-http/src/test/java/org/apache/camel/component/platform/http/PlatformHttpReturnHttpRequestHeadersTest.java b/components/camel-platform-http/src/test/java/org/apache/camel/component/platform/http/PlatformHttpReturnHttpRequestHeadersTest.java index 7d1536a4371..004ac1707c0 100644 --- a/components/camel-platform-http/src/test/java/org/apache/camel/component/platform/http/PlatformHttpReturnHttpRequestHeadersTest.java +++ b/components/camel-platform-http/src/test/java/org/apache/camel/component/platform/http/PlatformHttpReturnHttpRequestHeadersTest.java @@ -17,9 +17,11 @@ package org.apache.camel.component.platform.http; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.support.DefaultHeaderFilterStrategy; import org.junit.jupiter.api.Test; import static io.restassured.RestAssured.given; +import static org.hamcrest.CoreMatchers.is; public class PlatformHttpReturnHttpRequestHeadersTest extends AbstractPlatformHttpTest { @@ -65,15 +67,42 @@ public class PlatformHttpReturnHttpRequestHeadersTest extends AbstractPlatformHt .get("/get"); } + @Test + void testReturnHttpRequestHeadersFalseWithCustomHeaderFilterStrategy() { + given() + .header("Accept", "application/json") + .header("User-Agent", "User-Agent-Camel") + .header("Custom_In_Header", "Custom_In_Header_Value") + .header("Custom_Out_Header", "Custom_Out_Header_Value") + .port(port) + .expect() + .statusCode(200) + .header("Accept", (String) null) + .header("User-Agent", (String) null) + .header("Custom_In_Header", (String) null) + .header("Custom_Out_Header", (String) null) + .body(is("Custom_In_Header=, Custom_Out_Header=Custom_Out_Header_Value")) + .when() + .get("/getWithCustomHeaderFilterStrategy"); + } + @Override protected RouteBuilder routes() { return new RouteBuilder() { @Override public void configure() { + DefaultHeaderFilterStrategy testHeaderFilterStrategy = new DefaultHeaderFilterStrategy(); + testHeaderFilterStrategy.getInFilter().add("Custom_In_Header"); + testHeaderFilterStrategy.getOutFilter().add("Custom_Out_Header"); + getContext().getRegistry().bind("testHeaderFilterStrategy", testHeaderFilterStrategy); + from("platform-http:/getWithoutRequestHeadersReturn?returnHttpRequestHeaders=false") .setBody().constant("getWithoutRequestHeadersReturn"); from("platform-http:/getWithRequestHeadersReturn?returnHttpRequestHeaders=true") .setBody().constant("getWithRequestHeadersReturn"); + from("platform-http:/getWithCustomHeaderFilterStrategy?headerFilterStrategy=#testHeaderFilterStrategy") + .setBody() + .simple("Custom_In_Header=${header.Custom_In_Header}, Custom_Out_Header=${header.Custom_Out_Header}"); from("platform-http:/get") .setBody().constant("get"); }