Description
Yannick Lazzari opened SPR-11504 and commented
When the AbstractFlashMapManager decodes the target request parameters of a FlashMap before saving it, it only decodes the parameter values, not the parameter names. Parameter names are also part of the URL, just like values, so they might potentially also contain characters that were encoded, which is not that uncommon considering the binding path naming convention for array/map parameters that use the square brackets, e.g. '/some/url?params[0]=value1¶ms[1]=value2' which gets encoded to '/some/url?params%5B0%5D=value1¶ms%5B1%5D=value2'.
A similar issue had been raised in the past (#14291) but the fix then was to only decode the parameter values (see following commit: 364bb69).
Affects: 3.2.4
Issue Links:
- Flashmap matching logic fails when target params are encoded. [SPR-9657] #14291 Flashmap matching logic fails when target params are encoded.
- Unable to retrieve FlashMap when contains "+"(half-space) in the request parameters [SPR-11821] #16441 Unable to retrieve FlashMap when contains "+"(half-space) in the request parameters
- Flash attributes not working with spaces in query parameters [SPR-12569] #17170 Flash attributes not working with spaces in query parameters
Referenced from: commits spring-attic/spring-framework-issues@fed05a9
Backported to: 3.2.9
0 votes, 7 watchers