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

Work on CAMEL-26485 started by Claus Ibsen.
-------------------------------------------
> camel-netty-http - endpoint options such as cookieHandler and 
> httpMethodRestrict are sent to the server as query parameters
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26485
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26485
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-netty-http
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> The netty-http producer sends some of its endpoint options to the HTTP server 
> as query parameters. With
> {code}
> netty-http:http://localhost:8080/foo?bar=1&cookieHandler=#myCookieHandler&httpMethodRestrict=GET
> {code}
> the server receives the query 
> {{bar=1&cookieHandler=#myCookieHandler&httpMethodRestrict=GET}}, while only 
> {{bar=1}} is meant for the server. The component documentation (_Query 
> parameters vs. endpoint options_) says that endpoint options are resolved and 
> removed from the target URL.
> *Cause*
> {{NettyHttpComponent.createEndpoint}} builds the HTTP address with 
> {{URISupport.createRemainingURI(u, parameters)}} after {{parseConfiguration}} 
> has bound the {{NettyHttpConfiguration}} options, but before 
> {{setProperties(answer, parameters)}} binds the options of the endpoint 
> itself. Those options stay in the address, and {{NettyHttpHelper.createURL}} 
> sends them. Seen at runtime: {{cookieHandler}}, {{exchangePattern}} and 
> {{httpMethodRestrict}}; from reading the code also {{exceptionHandler}}, 
> {{oauthProfile}} and {{traceEnabled}}. camel-http builds its HTTP address 
> after the endpoint options are bound ({{HttpEndpoint.setHttpUri}}).
> *Proposed change*
> Build the HTTP address from the parameters that are left after 
> {{setProperties(answer, parameters)}}, and add a test that checks the query 
> the server receives ({{CamelHttpQuery}}).
> The endpoint URI itself must keep these options: Rest DSL consumers for 
> different verbs on the same path differ only in {{httpMethodRestrict}}, and 
> they must stay distinct endpoints. So this change goes together with, or 
> after, the change that keeps the HTTP address separate from the endpoint URI.
> _Filed by Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to