HTTP: Query Params Are Being Double Encoded Even When Encode=false
Description
Still trying to track down the root cause of this, but when putting an object via the S3SDK, a request to put
Results in the S3 path being URL encoded:
In Lucee and ACF there is no mutation of the path slashes.
Activity
Show:
Jon Clausen February 24, 2025 at 7:28 PM
Edited
Re-opening as URI will automatically de-code allowed characters. Which creates integrity issues with the put path below. So, for example:
A path of
when placed in to URI will return getPath() as
because it will automatically decode allowed characters as defined by the RFC.
Jon Clausen February 24, 2025 at 6:08 PM
Edited
This seems to have introduced a regression where paths like the following:
Now throw an error:
Jon Clausen February 23, 2025 at 6:57 PM
The root cause is that in our URIBuilder we return a new URI through the following:
Per the URI specification it states that may encode or re-encode special characters passed in to the query params. This is causing the double encoding.
Jon Clausen February 23, 2025 at 6:38 PM
Update The root cause is that we are double-encoding the query params, even though encoded is set to false
Jon Clausen February 23, 2025 at 6:27 PM
Actually, Lucee’s response on the list bucket is way more verbose, so I expect something in the header/request params is not being transmitted correctly:
Fixed
Pinned fields
Click on the next to a field label to start pinning.
Still trying to track down the root cause of this, but when putting an object via the S3SDK, a request to put
Results in the S3 path being URL encoded:
In Lucee and ACF there is no mutation of the path slashes.