Andrea Cosentino created CAMEL-24418:
----------------------------------------

             Summary: camel-http, camel-http-common, camel-undertow - do not 
resolve property placeholders in the CamelHttpUri header value
                 Key: CAMEL-24418
                 URL: https://issues.apache.org/jira/browse/CAMEL-24418
             Project: Camel
          Issue Type: Improvement
          Components: camel-http
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino
             Fix For: 4.23.0


Three HTTP producer helpers run property-placeholder resolution over the value 
of the CamelHttpUri message header:

* camel-http HttpMethodHelper.createMethod() line 51 - guarded by 
skipControlHeaders, which defaults to false
* camel-http-common HttpHelper.createMethod() line 336 - no guard (backs 
camel-servlet and camel-jetty)
* camel-undertow UndertowHelper.createMethod() line 131 - no guard

    uriString = exchange.getContext().resolvePropertyPlaceholders(uriString);

Property placeholders are a route/configuration-authoring feature; resolving 
them in a message header means a {{...}} token that only ever appears in 
message content is expanded against the application's property sources. This is 
the same inconsistency CAMEL-24282 addressed for toD and enrich, where the fix 
was to resolve at build time and treat a per-message {{...}} as a literal.

Proposal: drop the per-message resolution at all three sites (the endpoint URI 
itself is already resolved at build time). If any use case genuinely depends on 
it, gate it behind an explicit opt-in rather than leaving it on by default.

Behaviour change, so main only with an upgrade-guide entry. Note that 
camel-http-common and camel-undertow also lack the skipControlHeaders guard 
that camel-http has, so they are the more urgent of the three.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to