Jay mann created CAMEL-9642:
-------------------------------
Summary: restlet consumer request not propagating headers
Key: CAMEL-9642
URL: https://issues.apache.org/jira/browse/CAMEL-9642
Project: Camel
Issue Type: Bug
Components: camel-restlet
Affects Versions: 2.16.2
Reporter: Jay mann
Headers are not getting propagating from restlet consumers. The code is
setting them incorrectly inside DefaultRestletBinding.java ->
populateRestletRequestFromExchange
This is the code that works (based on latest from github):
for (Map.Entry<String, Object> entry :
exchange.getIn().getHeaders().entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (!headerFilterStrategy.applyFilterToCamelHeaders(key, value,
exchange)) {
// put the org.restlet headers in attributes
if (key.startsWith("org.restlet.")) {
request.getAttributes().put(key, value);
}
// Use forms only for PUT, POST and x-www-form-urlencoded
else if (form != null) {
// put the user stuff in the form
if (value instanceof Collection) {
for (Object v : (Collection<?>) value) {
form.add(key, v.toString());
}
} else {
form.add(key, value.toString());
}
}else {
// For non-form put all the headers in attributes header
Series<Header> headers =
(Series)request.getAttributes().get("org.restlet.http.headers");
if(headers == null){
headers = new Series<Header>(Header.class);
request.getAttributes().put("org.restlet.http.headers", headers);
}
headers.set(key, value.toString());
}
LOG.debug("Populate Restlet request from exchange header: {}
value: {}", key, value);
}
}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)