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]
