-
Bug
-
Resolution: Done
-
Major
-
None
-
None
UndertowOptions.ALLOW_UNESCAPED_CHARACTERS_IN_URL is read in HttpRequestParser.java here: https://github.com/undertow-io/undertow/blob/2abb6a2822c6a97904bba4d4b7a601b8e95c4122/core/src/main/java/io/undertow/server/protocol/http/HttpRequestParser.java#L215
and it is used when checking characters here: https://github.com/undertow-io/undertow/blob/2abb6a2822c6a97904bba4d4b7a601b8e95c4122/core/src/main/java/io/undertow/server/protocol/http/HttpRequestParser.java#L392
This works fine for HTTP 1.x but for HTTP/2 the same functionality is missing.
In Http2ReceiveListener here: https://github.com/undertow-io/undertow/blob/2abb6a2822c6a97904bba4d4b7a601b8e95c4122/core/src/main/java/io/undertow/server/protocol/http2/Http2ReceiveListener.java#L323 it always checks for valid characters but does not take UndertowOptions.ALLOW_UNESCAPED_CHARACTERS_IN_URL into account.
It should not check for the valid characters if UndertowOptions.ALLOW_UNESCAPED_CHARACTERS_IN_URL enabling the same functionality in HTTP/2 as is in place with HTTP/1.x today.
This replaces of UNDERTOW-1878 which did not have an accurate description of the actual problem.