maxfortun commented on PR #893:
URL: https://github.com/apache/tomcat/pull/893#issuecomment-3288693975

   @markt-asf , @ChristopherSchultz thank you both for in-depth responses. And 
I completely agree that simply removing forced lower case is sufficient for 
addressing original case preservation issue. The valve proposal was for those 
cases where one might actually want to force lower case. My use case is an 
Apache ActiveMQ broker backing a pipeline with many existing Apache Camel apps 
publishing messages with headers to and subscribing from the broker. These 
Camel apps are mainly a routing plane that internally posts the actual messages 
to micro-services backed by Apache Tomcat, and other frameworks, like ExpressJS 
and what not. The way such pipelines usually work, as the content traverses the 
pipeline the headers between requests are preserved and passed from one 
pipeline stage to the next. Apache Camel, Apache ActiveMQ, and all the other 
components in the pipeline preserve the headers just fine, so an X-Request-Id 
header remains an X-Request-Id throughout the pipeline. Currently we 
 are trying to add a legacy Tomcat backed service into the middle of the 
pipeline, and while we can lookup X-Request-Id if the servlet needs it, we 
can't do a pass-through for all headers, as that would mangle X-Request-Id into 
x-request-id and all existing downstream stages of the pipeline will no longer 
recognize the header, since downstreams treat headers in case-sensitive manner. 
Changing hundreds of applications to switch to lower case headers is not really 
feasible, so the cheapest thing for us is to patch http1 parser in tomcat for 
now. Again, thinking of Tomcat in context of vast eco-systems where Tomcat 
integrates with many other apps should be a good enough motivation for high 
fidelity pass-through processing without mangling inputs and thus losing that 
fidelity, thus losing the ability to place nice with other apps.  


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to