[jira] [Updated] (CAMEL-9462) HTTP 1.1 Host header be dealt wrongly in proxy & load balancer

2016-04-07 Thread Claus Ibsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-9462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-9462:
---
Assignee: Andrea Cosentino

> HTTP 1.1 Host header be dealt wrongly in proxy & load balancer
> --
>
> Key: CAMEL-9462
> URL: https://issues.apache.org/jira/browse/CAMEL-9462
> Project: Camel
>  Issue Type: Bug
>  Components: camel-http, camel-http4
>Affects Versions: 2.9.5, 2.10.3, 2.11.0
>Reporter: Ian Hu
>Assignee: Andrea Cosentino
> Fix For: 2.17.1, 2.18.0
>
>
> I have wrote code below make camel as a load balancer, but camel-http4(and 
> the camel-http, etc) deal the http header Host wrongly, it replace the Host 
> header with the host name of the backend of balancer, that make the backend 
> generate the wrong link.
>  
> {code:title=Main.java|borderStyle=solid}
> import org.apache.camel.impl.DefaultCamelContext;
> import org.apache.camel.model.RouteDefinition;
> public class Main {
> public static void main(String[] args) throws Exception {
> DefaultCamelContext context = new DefaultCamelContext();
> RouteDefinition route = new RouteDefinition();
> route.from("jetty:http://0.0.0.0:8080/?matchOnUriPrefix=true";)
> .loadBalance().roundRobin()
> 
> .to("http4://127.0.0.1:8081/?bridgeEndpoint=true&throwExceptionOnFailure=false")
> 
> .to("http4://127.0.0.1:8082/?bridgeEndpoint=true&throwExceptionOnFailure=false");
> //
> context.addRouteDefinition(route);
> context.start();
> }
> }
> {code}
> I have view the code and found a fix of 
> [https://issues.apache.org/jira/browse/CAMEL-5757](See the commit), it's 
> commits simply removed the host header 
> [https://fisheye6.atlassian.com/browse/camel-git/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java?hb=true#to106].
>  and I really do not think it should be dealt like that.
> Some backend will use the Host header to generate link, and when the Host 
> header removed and then it be set to the backend's host, the backend got the 
> wrong Host, and generate the wrong link.
> I expect the link should be http://localhost:8080/web but it generate 
> http://127.0.0.1:8081/web or http://127.0.0.1:8082/web when I view the page 
> with the url http://localhost:8080



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-9462) HTTP 1.1 Host header be dealt wrongly in proxy & load balancer

2016-03-07 Thread Claus Ibsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-9462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-9462:
---
Fix Version/s: (was: 2.17.0)
   2.17.1
   2.18.0

> HTTP 1.1 Host header be dealt wrongly in proxy & load balancer
> --
>
> Key: CAMEL-9462
> URL: https://issues.apache.org/jira/browse/CAMEL-9462
> Project: Camel
>  Issue Type: Bug
>  Components: camel-http, camel-http4
>Affects Versions: 2.9.5, 2.10.3, 2.11.0
>Reporter: Ian Hu
> Fix For: 2.18.0, 2.17.1
>
>
> I have wrote code below make camel as a load balancer, but camel-http4(and 
> the camel-http, etc) deal the http header Host wrongly, it replace the Host 
> header with the host name of the backend of balancer, that make the backend 
> generate the wrong link.
>  
> {code:title=Main.java|borderStyle=solid}
> import org.apache.camel.impl.DefaultCamelContext;
> import org.apache.camel.model.RouteDefinition;
> public class Main {
> public static void main(String[] args) throws Exception {
> DefaultCamelContext context = new DefaultCamelContext();
> RouteDefinition route = new RouteDefinition();
> route.from("jetty:http://0.0.0.0:8080/?matchOnUriPrefix=true";)
> .loadBalance().roundRobin()
> 
> .to("http4://127.0.0.1:8081/?bridgeEndpoint=true&throwExceptionOnFailure=false")
> 
> .to("http4://127.0.0.1:8082/?bridgeEndpoint=true&throwExceptionOnFailure=false");
> //
> context.addRouteDefinition(route);
> context.start();
> }
> }
> {code}
> I have view the code and found a fix of 
> [https://issues.apache.org/jira/browse/CAMEL-5757](See the commit), it's 
> commits simply removed the host header 
> [https://fisheye6.atlassian.com/browse/camel-git/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java?hb=true#to106].
>  and I really do not think it should be dealt like that.
> Some backend will use the Host header to generate link, and when the Host 
> header removed and then it be set to the backend's host, the backend got the 
> wrong Host, and generate the wrong link.
> I expect the link should be http://localhost:8080/web but it generate 
> http://127.0.0.1:8081/web or http://127.0.0.1:8082/web when I view the page 
> with the url http://localhost:8080



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CAMEL-9462) HTTP 1.1 Host header be dealt wrongly in proxy & load balancer

2016-01-19 Thread Claus Ibsen (JIRA)

 [ 
https://issues.apache.org/jira/browse/CAMEL-9462?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen updated CAMEL-9462:
---
Fix Version/s: 2.17.0

> HTTP 1.1 Host header be dealt wrongly in proxy & load balancer
> --
>
> Key: CAMEL-9462
> URL: https://issues.apache.org/jira/browse/CAMEL-9462
> Project: Camel
>  Issue Type: Bug
>  Components: camel-http, camel-http4
>Affects Versions: 2.9.5, 2.10.3, 2.11.0
>Reporter: Ian Hu
> Fix For: 2.17.0
>
>
> I have wrote code below make camel as a load balancer, but camel-http4(and 
> the camel-http, etc) deal the http header Host wrongly, it replace the Host 
> header with the host name of the backend of balancer, that make the backend 
> generate the wrong link.
>  
> {code:title=Main.java|borderStyle=solid}
> import org.apache.camel.impl.DefaultCamelContext;
> import org.apache.camel.model.RouteDefinition;
> public class Main {
> public static void main(String[] args) throws Exception {
> DefaultCamelContext context = new DefaultCamelContext();
> RouteDefinition route = new RouteDefinition();
> route.from("jetty:http://0.0.0.0:8080/?matchOnUriPrefix=true";)
> .loadBalance().roundRobin()
> 
> .to("http4://127.0.0.1:8081/?bridgeEndpoint=true&throwExceptionOnFailure=false")
> 
> .to("http4://127.0.0.1:8082/?bridgeEndpoint=true&throwExceptionOnFailure=false");
> //
> context.addRouteDefinition(route);
> context.start();
> }
> }
> {code}
> I have view the code and found a fix of 
> [https://issues.apache.org/jira/browse/CAMEL-5757](See the commit), it's 
> commits simply removed the host header 
> [https://fisheye6.atlassian.com/browse/camel-git/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpProducer.java?hb=true#to106].
>  and I really do not think it should be dealt like that.
> Some backend will use the Host header to generate link, and when the Host 
> header removed and then it be set to the backend's host, the backend got the 
> wrong Host, and generate the wrong link.
> I expect the link should be http://localhost:8080/web but it generate 
> http://127.0.0.1:8081/web or http://127.0.0.1:8082/web when I view the page 
> with the url http://localhost:8080



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)