Closed
Description
Hi there!
Thanks for taking a look at this issue. Please let me know if you require more information.
Let's discuss!
Describe the bug
HttpSessionRequestCache#getMatchingRequest
relies on org.springframework.web.util.UriComponentsBuilder#fromUriString(String)
to be able to handle decoded %
characters.
To Reproduce
The org.springframework.web.util.UriComponentsBuilder#fromUriString(String)
cannot handle a %
followed by characters that result in false %-encoding.
@Test
void unencodedPercent(){
assertThatRuntimeException().isThrownBy(() -> UriComponentsBuilder.fromUriString("/30 % off"));
}
This leads to a org.springframework.web.util.InvalidUrlException: Bad path
when such a request gets to
An encoded request
https://example.com/myapp/discounts/30%20%25%20off
is returned decoded by The
UriComponentsBuilder
cannot handle this decoded %
Expected behavior
My request does not result in an InvalidUrlException
.