You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Gert Vanthienen (JIRA)" <ji...@apache.org> on 2015/12/22 15:05:46 UTC

[jira] [Resolved] (CAMEL-9442) Query string gets decoded when bridging from netty-http to http4

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

Gert Vanthienen resolved CAMEL-9442.
------------------------------------
    Resolution: Fixed

Fixed in 
- https://git-wip-us.apache.org/repos/asf?p=camel.git;a=commit;h=9827197a7874e2f331da25b3bfe9a028daae88b1 for {{master}}
- https://git-wip-us.apache.org/repos/asf?p=camel.git;a=commit;h=10d50677e6dbe6f8fbbb98cc1a8b473a97eaa43d for {{camel-2.16.x}}
- https://git-wip-us.apache.org/repos/asf?p=camel.git;a=commit;h=1a20c1ce542e487943c90617d1af9fab0818106e for {{camel-2.15.x}}

> Query string gets decoded when bridging from netty-http to http4
> ----------------------------------------------------------------
>
>                 Key: CAMEL-9442
>                 URL: https://issues.apache.org/jira/browse/CAMEL-9442
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-http-common, camel-http4
>    Affects Versions: 2.17.0
>            Reporter: Gert Vanthienen
>            Assignee: Gert Vanthienen
>             Fix For: 2.15.6, 2.16.2, 2.17.0
>
>
> When using a route like this one (to forward an HTTP request to a downstream server) using the {{netty-http}} component, the query is decoded when sent to the downstream server:
> {noformat}
>   from("netty-http:http://localhost:9000/service?matchOnUriPrefix=true")
>           .to ("http4://downstream:9000/service?bridgeEndpoint=true");
> {noformat}
> A request to {{http://localhost:9000/service?q=%3B}} will result in a call to {{http://downstream:9000/service?q=;}} (notice the decoded {{;}} character). Replacing the {{netty-http:http:}} endpoint with a {{jetty:http:}} endpoint fixes the problem.
> The difference is in the use of the {{Exchange.HTTP_QUERY}} and {{Exchange.HTTP_RAW_QUERY}} headers. The {{jetty:http:}} endpoint is only setting the former header (containing the raw header value), while the {{netty-http:http:}} endpoint is using both headers.
> When using {{bridgeEndpoint}}, the {{http4}} component should prefer the raw query header over the decoded header if both headers are available.



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