[ https://issues.apache.org/jira/browse/CAMEL-9442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gert Vanthienen updated CAMEL-9442: ----------------------------------- Summary: Query string gets decoded when bridging from netty-http to http4 (was: URI gets decoded when bridging from netty-http to http4) > 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)