public HttpHeaderFilterStrategy() { initialize(); }
protected void initialize() { getOutFilter().add("content-length"); getOutFilter().add("content-type"); getOutFilter().add("host"); // Add the filter for the Generic Message header // http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.5 getOutFilter().add("cache-control"); getOutFilter().add("connection"); getOutFilter().add("date"); getOutFilter().add("pragma"); getOutFilter().add("trailer"); getOutFilter().add("transfer-encoding"); getOutFilter().add("upgrade"); getOutFilter().add("via"); getOutFilter().add("warning"); setLowerCase(true); // filter headers begin with "Camel" or "org.apache.camel" // must ignore case for Http based transports setOutFilterPattern("(?i)(Camel|org\\.apache\\.camel)[\\.|a-z|A-z|0-9]*"); setInFilterPattern("(?i)(Camel|org\\.apache\\.camel)[\\.|a-z|A-z|0-9]*"); } }
@Override public boolean applyFilterToCamelHeaders(String headerName, Object headerValue, Exchange exchange) { boolean answer = super.applyFilterToExternalHeaders(headerName, headerValue, exchange); // using rest producer then headers are mapping to uri and query parameters using {key} syntax // if there is a match to an existing Camel Message header, then we should filter (=true) this // header as its already been mapped by the RestProducer from camel-core, and we do not want // the header to included as HTTP header also (eg as duplicate value) if (!answer) { if (templateUri != null) { String token = "{" + headerName + "}"; if (templateUri.contains(token)) { answer = true; } } if (!answer && queryParameters != null) { String token = "=%7B" + headerName + "%7D"; // encoded values for { } if (queryParameters.contains(token)) { answer = true; } } } return answer; }
protected void initialize() { super.initialize(); getOutFilter().remove("date"); //getOutFilter().remove("content-length"); //getOutFilter().remove("content-type"); //// Add the filter for the Generic Message header //// http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.5 //getOutFilter().remove("cache-control"); //getOutFilter().remove("connection"); //getOutFilter().remove("date"); //getOutFilter().remove("pragma"); //getOutFilter().remove("trailer"); //getOutFilter().remove("transfer-encoding"); //getOutFilter().remove("upgrade"); //getOutFilter().remove("via"); //getOutFilter().remove("warning"); // }
@Override protected void initialize() { super.initialize(); setOutFilterPattern("(?i)(Syndesis|Camel|org\\.apache\\.camel).*"); setInFilterPattern("(?i)(Syndesis|Camel|org\\.apache\\.camel).*"); } }