Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 306AE200C2B for ; Thu, 2 Mar 2017 13:41:36 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id 2F04E160B6F; Thu, 2 Mar 2017 12:41:36 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 78D78160B61 for ; Thu, 2 Mar 2017 13:41:35 +0100 (CET) Received: (qmail 3563 invoked by uid 500); 2 Mar 2017 12:41:34 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 3554 invoked by uid 99); 2 Mar 2017 12:41:34 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 02 Mar 2017 12:41:34 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 6564EDFCA1; Thu, 2 Mar 2017 12:41:34 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: zregvart@apache.org To: commits@camel.apache.org Message-Id: <0fe8fa045eb94afc8587bc82460b4493@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: camel git commit: CAMEL-10926 Set the Host header in Undertow pro... Date: Thu, 2 Mar 2017 12:41:34 +0000 (UTC) archived-at: Thu, 02 Mar 2017 12:41:36 -0000 Repository: camel Updated Branches: refs/heads/master 5ae014838 -> dd6f9ba60 CAMEL-10926 Set the Host header in Undertow pro... ...ducer The implementation checks if the incoming Camel message has a `Host` header, and if it's not set sets the `Host` HTTP header of the request to authority of parsed URI value from given `httpURI` parameter (transfered through `path` property of `ClientRequest`). Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/dd6f9ba6 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/dd6f9ba6 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/dd6f9ba6 Branch: refs/heads/master Commit: dd6f9ba60fb472b5a4e44f5b7d0a89b7dc895ade Parents: 5ae0148 Author: Zoran Regvart Authored: Thu Mar 2 13:40:10 2017 +0100 Committer: Zoran Regvart Committed: Thu Mar 2 13:40:10 2017 +0100 ---------------------------------------------------------------------- .../component/undertow/DefaultUndertowHttpBinding.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/dd6f9ba6/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java ---------------------------------------------------------------------- diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java index 153279b..de64148 100644 --- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java +++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/DefaultUndertowHttpBinding.java @@ -21,6 +21,7 @@ import java.io.IOException; import java.io.ObjectOutputStream; import java.io.PrintWriter; import java.io.StringWriter; +import java.net.URI; import java.nio.ByteBuffer; import java.nio.channels.ReadableByteChannel; import java.util.Deque; @@ -28,6 +29,7 @@ import java.util.HashMap; import java.util.Iterator; import java.util.Locale; import java.util.Map; +import java.util.Optional; import javax.activation.FileDataSource; @@ -39,6 +41,7 @@ import io.undertow.server.HttpServerExchange; import io.undertow.server.handlers.form.FormData; import io.undertow.server.handlers.form.FormData.FormValue; import io.undertow.server.handlers.form.FormDataParser; +import io.undertow.util.HeaderMap; import io.undertow.util.Headers; import io.undertow.util.HttpString; import io.undertow.util.Methods; @@ -350,14 +353,20 @@ public class DefaultUndertowHttpBinding implements UndertowHttpBinding { Object body = message.getBody(); + final HeaderMap requestHeaders = clientRequest.getRequestHeaders(); + // set the content type in the response. String contentType = MessageHelper.getContentType(message); if (contentType != null) { // set content-type - clientRequest.getRequestHeaders().put(Headers.CONTENT_TYPE, contentType); + requestHeaders.put(Headers.CONTENT_TYPE, contentType); LOG.trace("Content-Type: {}", contentType); } + // Set the Host header + final String host = message.getHeader("Host", String.class); + requestHeaders.put(Headers.HOST, Optional.ofNullable(host).orElseGet(()-> URI.create(clientRequest.getPath()).getAuthority())); + TypeConverter tc = message.getExchange().getContext().getTypeConverter(); //copy headers from Message to Request @@ -371,7 +380,7 @@ public class DefaultUndertowHttpBinding implements UndertowHttpBinding { if (headerValue != null && headerFilterStrategy != null && !headerFilterStrategy.applyFilterToCamelHeaders(key, headerValue, message.getExchange())) { LOG.trace("HTTP-Header: {}={}", key, headerValue); - clientRequest.getRequestHeaders().add(new HttpString(key), headerValue); + requestHeaders.add(new HttpString(key), headerValue); } } }