You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Luca Burgazzoli (JIRA)" <ji...@apache.org> on 2019/07/29 14:45:00 UTC
[jira] [Closed] (CAMEL-13794) netty4-http: headerFilterStrategy not
properly taken into account
[ https://issues.apache.org/jira/browse/CAMEL-13794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Luca Burgazzoli closed CAMEL-13794.
-----------------------------------
Resolution: Invalid
> netty4-http: headerFilterStrategy not properly taken into account
> -----------------------------------------------------------------
>
> Key: CAMEL-13794
> URL: https://issues.apache.org/jira/browse/CAMEL-13794
> Project: Camel
> Issue Type: Bug
> Components: camel-netty4-http
> Reporter: Luca Burgazzoli
> Assignee: Andrea Cosentino
> Priority: Major
>
> I have this test with a custom header filter strategy:
> {code}
> @Test
> void testCustomHeadersFilter() throws Exception {
> final int port = AvailablePortFinder.getNextAvailable();
> final CamelContext context = new DefaultCamelContext()
> DefaultHeaderFilterStrategy hfs = new DefaultHeaderFilterStrategy();
> hfs.setOutFilterPattern("(?i)(My)[\\.|a-z|A-z|0-9]*");
> hfs.setInFilterPattern("(?i)(My)[\\.|a-z|A-z|0-9]*");
> context.getRegistry().bind("myFilterStrategy", hfs);
> //NettyHttpComponent c = context.getComponent("netty4-http", NettyHttpComponent.class);
> //c.setHeaderFilterStrategy(hfs);
> context.addRoutes(new RouteBuilder() {
> @Override
> public void configure() throws Exception {
> from("direct:source")
> .setHeader("CamelHeader")
> .constant("CamelHeaderValue")
> .setHeader("MyHeader")
> .constant("MyHeaderValue")
> .toF("netty4-http:http://localhost:%d?headerFilterStrategy=#myFilterStrategy", port)
> .to("mock:source");
> fromF("netty4-http:http://localhost:%d", port)
> .setBody().constant("test");
> }
> });
> context.start();
> MockEndpoint mock = context.getEndpoint("mock:source", MockEndpoint.class);
> mock.expectedMessageCount(1);
> context.createProducerTemplate().sendBody("direct:source", "test");
> mock.assertIsSatisfied();
> assertThat(mock.getExchanges().get(0).getMessage().getHeaders()).doesNotContainKey("MyHeader");
> assertThat(mock.getExchanges().get(0).getMessage().getHeaders()).containsEntry("CamelHeader", "CamelHeaderValue");
> }
> {code}
> This test fails because:
> {code}
> java.lang.AssertionError:
> Expecting:
> <{"CamelHttpResponseCode"=200, "CamelHttpResponseText"="OK", "connection"="keep-alive", "content-length"="4"}>
> to contain:
> <[MapEntry[key="CamelHeader", value="CamelHeaderValue"]]>
> but could not find:
> <[MapEntry[key="CamelHeader", value="CamelHeaderValue"]]>
> {code}
> which is strange as:
> - CamelHeader is supposed to be present
> - MyHeader is not present
> so it seems that the default netty filter is also used.
> If the header filter strategy is applied on component level, then the test succeed.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)