We had an issue where clients were sending "+" as part of a parameter value without percent-encoding it. After digging in, it looks like converting "+" to " " is from HTML form encoding, but not part of the URL spec.
I found https://www.ibm.com/mysupport/s/question/0D50z00005phvXb/urls-with-or-2b-in-the-path-or-query-are-incorrectly-decoded-to-space?language=en_US which sounds exactly like what we're hitting, but with Liberty 19.0.0.8 (and probably for some time), even excpicitly setting decodeUrlPlusSign="false"
doesn't seem to help.
That is, when we call req.getParameter(queryParameterName)
it is returning the value with a " " instead of a "+".
I'm setting it in server.xml as follows:
<webContainer disableXPoweredBy="true" decodeUrlPlusSign="false" />
What exactly is decodeUrlPlusSign
supposed to do? Is it working as expected?