To install message header filters, set the messageHeaderFilters property of
the CxfHeaderFilterStrategy object. When you initialize this property with a
list of message header filters, the header filter strategy combines the specified filters to
make a filter map.
The messageHeaderFilters property is of type,
List<MessageHeaderFilter>.
The following example shows how to create a CxfHeaderFilterStrategy
instance, specifying a customized list of header filters in the
messageHeaderFilters property. There are two header filters in this example:
SoapMessageHeaderFilter and CustomHeaderFilter.
<bean id="customMessageFilterStrategy" class="org.apache.camel.component.cxf.common.header.CxfHeaderFilterStrategy">
<property name="messageHeaderFilters">
<list>
<!-- SoapMessageHeaderFilter is the built in filter. It can be removed by omitting it. -->
<bean class="org.apache.camel.component.cxf.common.header.SoapMessageHeaderFilter"/>
<!-- Add custom filter here -->
<bean class="org.apache.camel.component.cxf.soap.headers.CustomHeaderFilter"/>
</list>
</property>
<!-- The 'relayHeaders' property is 'true' by default -->
</bean>The first header filter in the preceding example is the
SoapMessageHeaderFilter filter, which is the default header filter. This
filter is designed to filter standard SOAP headers and is bound to the following XML
namespaces:
http://schemas.xmlsoap.org/soap/ http://schemas.xmlsoap.org/wsdl/soap/ http://schemas.xmlsoap.org/wsdl/soap12/
This filter peeks at the header element, in order to decide whether or not to block a
particular header. If the soap:actor attribute (SOAP 1.1) or the
soap:role attribute (SOAP 1.2) is present and has the value
next, the header is removed from the message. Otherwise, the header
is propagated.
Normally, each namespace should be bound to just a single header filter. If a namespace
is bound to more than one header filter, this normally causes an error. It is possible,
however, to override this policy by setting the allowFilterNamespaceClash
property to true in the CxfHeaderFilterStrategy instance. When
this policy is set to true, the nearest to last filter is selected, in the
event of a namespace clash.







