You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/07/25 15:16:44 UTC
[2/3] camel git commit: Filter existing restlet headers when building
restlet request
Filter existing restlet headers when building restlet request
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f80365cd
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f80365cd
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f80365cd
Branch: refs/heads/master
Commit: f80365cde8f8ab2595095817e8146f8942c64b97
Parents: 3706bf1
Author: John Moon <jo...@transamerica.com>
Authored: Mon Jul 18 10:00:03 2016 -0400
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Jul 25 17:11:57 2016 +0200
----------------------------------------------------------------------
.../component/restlet/DefaultRestletBinding.java | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/f80365cd/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
index 482a97a..31eb55e 100644
--- a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/DefaultRestletBinding.java
@@ -195,11 +195,24 @@ public class DefaultRestletBinding implements RestletBinding, HeaderFilterStrate
}
}
- //Get outgoing custom http headers
- Series<Header> restletHeaders = (Series)request.getAttributes().get(HeaderConstants.ATTRIBUTE_HEADERS);
+ //Get outgoing custom http headers from the exchange if they exists
+ Series<Header> restletHeaders = exchange.getIn().getHeader(HeaderConstants.ATTRIBUTE_HEADERS,Series.class);
if (restletHeaders == null) {
restletHeaders = new Series<>(Header.class);
request.getAttributes().put(HeaderConstants.ATTRIBUTE_HEADERS, restletHeaders);
+ } else {
+
+ //If the restlet headers already exists on the exchange, we need to filter them
+ for(String name : restletHeaders.getNames()){
+ if(headerFilterStrategy.applyFilterToCamelHeaders(name, restletHeaders.getValues(name), exchange)) {
+ restletHeaders.removeAll(name);
+ }
+ }
+ request.getAttributes().put(HeaderConstants.ATTRIBUTE_HEADERS, restletHeaders);
+
+ //Since the restlet headers already exists remove them from the exchange so they don't get added again below
+ //We will get a new set of restlet headers on the response
+ exchange.getIn().removeHeader(HeaderConstants.ATTRIBUTE_HEADERS);
}
// login and password are filtered by header filter strategy