I have two seperate servers running tomcat 9 and tomcat 8 respectively. When I sent a http request to tomcat 9 where one of the parameters has a '[' character in it the request is handled fine by tomcat and forwarded to the correct servlet. However, when I send the same request to tomcat 8 server a 400 error is thrown without the request even getting to the processing servlet The only log I can see when the request fails is in tomcats access log which reads 127.0.0.1 - - [30/Jan/2019:22:53:45 +0000] "GET null null" 400 -
Clearly the problem is with tomcat 8 and how it handles this character. Question is what is the difference in default configuration between 9 and 8 because tomcat 9 is setup in a default configuration as is tomcat 8. And updating tomcat 8 is NOT an option as it is a customers server who is not for changing.
I have read answers such as Tomcat 8 is not able to handle get request with '|' in query parameters? and escaping the characters would be a good solution but I am trying to see "where" can I intercept the request in order to escape the characters