You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by burner <bj...@googlemail.com> on 2015/12/16 13:02:56 UTC

Add my own Filter on http4?

Hello together,

i want to use a own headerFilterStrategy on my own Component extends from
http4.

So I create this class:
public class DefaultHeaderFilterStrategy extends HttpHeaderFilterStrategy {
	
	public DefaultHeaderFilterStrategy() {
		super();
		getOutFilter().add("MessageHistory");
		getInFilter().add("MessageHistory");
		System.err.println(getOutFilter().toString());
		// I get [date, content-length, transfer-encoding, upgrade, pragma, via,
trailer, *MessageHistory*, host, warning, content-type, connection,
cache-control]
	}
	
	public boolean applyFilterToCamelHeaders(String headerName, Object
headerValue, Exchange exchange) {
		boolean test = super.applyFilterToCamelHeaders(headerName, headerValue,
exchange);
		System.err.println("Camel return "+test+ " for "+headerName);
		*// Here I get false for MessageHistory*
        return test;
    }

    public boolean applyFilterToExternalHeaders(String headerName, Object
headerValue, Exchange exchange) {
    	boolean test = super.applyFilterToExternalHeaders(headerName,
headerValue, exchange);
    	System.err.println("Extern return "+test+ " for "+headerName);
		*// Here I get false for MessageHistory*
        return test;
    }
}

and in my Component extends from
org.apache.camel.component.http4.HttpComponent I override the Method
createEndpoint and change the line:

From
if (headerFilterStrategy != null) {
			endpoint.setHeaderFilterStrategy(headerFilterStrategy);
		} else {
			setEndpointHeaderFilterStrategy(endpoint);
		}

To

if (headerFilterStrategy != null) {
			endpoint.setHeaderFilterStrategy(headerFilterStrategy);
		} else {
*			headerFilterStrategy = new DefaultHeaderFilterStrategy();
			endpoint.setHeaderFilterStrategy(headerFilterStrategy);*
			setEndpointHeaderFilterStrategy(endpoint);
		}

It print out, that my Filter is in getOutFilter. But it always sends out in
the header from a http Post request.

Why? How can I filter out a Camel Header, without to remove the header vom
the Exchange?

Thank you for help.



--
View this message in context: http://camel.465427.n5.nabble.com/Add-my-own-Filter-on-http4-tp5775147.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Add my own Filter on http4?

Posted by burner <bj...@googlemail.com>.
I found the Error!

All cases must be lower!
so this work:
getOutFilter().add("messagehistory");

This don't work:
getOutFilter().add("MessageHistory");




--
View this message in context: http://camel.465427.n5.nabble.com/Add-my-own-Filter-on-http4-tp5775147p5775152.html
Sent from the Camel - Users mailing list archive at Nabble.com.