Remove Headers
The Remove Headers EIP allows you to remove one or more headers from the Message, based on pattern syntax.
Options
The Remove Headers eip supports the following options which are listed below.
| Name | Description | Default | Type |
|---|---|---|---|
note | The note for this node. | String | |
description | The description for this node. | String | |
disabled | Whether to disable this EIP from the route during build time. Once an EIP has been disabled then it cannot be enabled later at runtime. | false | Boolean |
pattern | Required Name or pattern of headers to remove. The pattern supports exact match, wildcard (pattern ends with ), and regular expression (all case-insensitive). | String | |
excludePattern | Name or pattern of headers to not remove. You can use comma to separate multiple patterns. | String |
Remove Headers by pattern
The Remove Headers EIP supports pattern matching by the following rules in the given order:
-
match by exact name
-
match by wildcard
-
match by regular expression
Remove all headers
To remove all headers you can use * as the pattern:
-
Java
-
XML
-
YAML
from("seda:b")
.removeHeaders("*")
.to("mock:result"); <route>
<from uri="seda:b"/>
<removeHeaders pattern="*"/>
<to uri="mock:result"/>
</route> - route:
from:
uri: seda:b
steps:
- removeHeaders:
pattern: "*"
- to:
uri: mock:result Remove all Camel headers
To remove all headers that start with Camel then use Camel* as shown:
-
Java
-
XML
-
YAML
from("seda:b")
.removeHeaders("Camel*")
.to("mock:result"); <route>
<from uri="seda:b"/>
<removeHeaders pattern="Camel*"/>
<to uri="mock:result"/>
</route> - route:
from:
uri: seda:b
steps:
- removeHeaders: "Camel*"
- to:
uri: mock:result Leaking Camel headers when sending to an endpoint
When I send a message to a Camel endpoint such as the Mail component, then the mail include some message headers I do not want. How can I avoid this?
This is a gotcha more people encounter. However, it’s very easy to solve. To remove all headers (see above) use a * expression:
Most components will automatically remove all Camel specific headers (the header key starts with Camel) using the DefaultHeaderFilterStrategy which automatic removes these headers. However if you use a component that does not do this, such as a custom component, or a Camel component which has not been improved to do that, then you can remove all these Camel specific headers using Camel* with the removeHeaders EIP as shown previously on this page.
See Also
Camel provides the following EIPs for removing headers or exchange properties:
-
Remove Header: To remove a single header
-
Remove Headers: To remove one or more message headers
-
Remove Property: To remove a single exchange property
-
Remove Properties: To remove one or more exchange properties