Daniel Vega created HTTPCLIENT-2383:
---------------------------------------
Summary: LaxRedirectStrategy unintentionally blocks redirects due
to inherited sensitive header check
Key: HTTPCLIENT-2383
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2383
Project: HttpComponents HttpClient
Issue Type: Bug
Reporter: Daniel Vega
{*}Summary{*}:
{{LaxRedirectStrategy}} in HttpClient 5.5 does not override
{{{}isRedirectAllowed(){}}}, causing unexpected redirect blocking due to
inherited sensitive header checks.
{*}Description{*}:
Starting with HttpClient 5.5, a new check was introduced in
{{{}RedirectStrategy.isRedirectAllowed(){}}}, and implemented in the class
{{{}DefaultRedirectStrategy{}}}, to prevent redirects when requests contain
sensitive headers such as {{{}Authorization{}}}. This is a security-conscious
change and makes sense for the default strategy.
However, {{{}LaxRedirectStrategy{}}}, which was introduced earlier (in 5.4) to
allow more permissive redirection behavior, *inherits* from
{{DefaultRedirectStrategy}} but does *not override*
{{{}isRedirectAllowed(){}}}. As a result, even when {{LaxRedirectStrategy}} is
explicitly used in a client, it still respects the stricter logic from
{{DefaultRedirectStrategy}} when {{RedirectExec.handleResponse()}} delegates to
{{{}isRedirectAllowed(){}}}.
This leads to unintuitive behavior: despite choosing a “lax” strategy,
redirections are blocked if sensitive headers are present — defeating the
purpose of selecting {{LaxRedirectStrategy}} to have a more loose (lax)
redirect behavior.
{*}Proposed Fix{*}:
Override {{isRedirectAllowed()}} in {{LaxRedirectStrategy}} to allow
redirection regardless of sensitive headers, aligning with a more intuitive
redirection strategy system.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org