Skip to content

normalize the scheme case in the Uri constructor#2239

Open
madib06ops wants to merge 1 commit into
AsyncHttpClient:mainfrom
madib06ops:uri-scheme-case
Open

normalize the scheme case in the Uri constructor#2239
madib06ops wants to merge 1 commit into
AsyncHttpClient:mainfrom
madib06ops:uri-scheme-case

Conversation

@madib06ops

Copy link
Copy Markdown
Contributor

validateSupportedScheme accepts a scheme equal ignoring case to http/https/ws/wss, but the constructor derived secured with a case-sensitive compare, so a Uri built through the public constructor or withNewScheme with "HTTPS" passes validation and still reports isSecured() false, with getSchemeDefaultPort() then returning 80. That gates the TLS and credential decisions downstream: no SslHandler is installed, Proxy-Authorization goes out in the clear, Secure cookies are released, and the schemeDowngrade check on redirect never fires. UriParser already lowercases the schemes it parses, so only the direct-constructor path disagrees; normalizing in the constructor lines the two up (the adjacent webSocket line was already using equalsIgnoreCase for WSS).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant