Message Property Filter in Mule

Message Property Filter in Mule

Matches properties on a message.

Minimum Configuration: The Pattern that the filter should match on.

Use a Message Property Filter to route messages using logic based on the values of one or more message properties. Using this filter you can access the message meta-data (that is, the message properties) including transport-specific and user-defined properties. These message properties represent all the meta information about the message that is available from the underlying transport. For example, if you receive a message via a HTTP connector, you can use this filter to check HTTP header values.

The Pattern is expressed as a key/value pair, where the key is the name of the property. For example, to test the http.method is GET, you could write http.method=GET.

By default, the Case Sensitive box is checked, indicating that the comparison is case sensitive. Uncheck this box if you want the comparison to be case insensitive.

Message property filter filters the payload on the basis of some property(key-value pair).

In our example we have filtered the message on the basis of header property name=himanshu. that means when we pass in header name=himanshu then only it will pass the payload.

flow of message property filter :

Message property filter configuration :

In above configuration we can see that pattern i have given name=himanshu & scope=inbound.

Below is the header i pass name=himanshu by postman :

URL : http://localhost:8085/api/messageprop

Input :

Output :

XML project code :

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:http="" xmlns="" xmlns:doc=""
    <http:listener-config name="HTTP_Listener_Configuration" host="" port="8085" basePath="/api" doc:name="HTTP Listener Configuration"/>
    <flow name="test_messagepropertyfilterFlow">
        <http:listener config-ref="HTTP_Listener_Configuration" path="/messageprop" doc:name="HTTP"/>
        <message-property-filter pattern="name=himanshu" caseSensitive="false" scope="inbound" doc:name="Message Property"/>