You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Andrea Cosentino (Jira)" <ji...@apache.org> on 2026/08/23 14:07:00 UTC

[jira] [Created] (CAMEL-24452) camel-http - credentials are sent to redirect targets on a different host

Andrea Cosentino created CAMEL-24452:
----------------------------------------

             Summary: camel-http - credentials are sent to redirect targets on a different host
                 Key: CAMEL-24452
                 URL: https://issues.apache.org/jira/browse/CAMEL-24452
             Project: Camel
          Issue Type: Bug
          Components: camel-http
            Reporter: Andrea Cosentino
            Assignee: Andrea Cosentino
             Fix For: 4.23.0


Two independent paths send credentials to a host the endpoint was never configured with, once {{followRedirects=true}}:

1. {{OAuth2ClientConfigurer.configureHttpClient}} registers a request interceptor with {{addRequestInterceptorFirst}} that sets {{Authorization: Bearer <token>}} unconditionally. HttpClient 5 runs protocol-level request interceptors inside {{ProtocolExec}}, which sits below {{RedirectExec}} in the exec chain, so the interceptor runs again for each redirect hop and re-attaches the token to whatever host the {{Location}} header named. Nothing compares the request target with the endpoint's configured host, and HC5's cross-site auth-state reset does not apply because the header is set directly rather than through the auth exchange.

2. {{HttpCredentialsHelper.getCredentialsProvider}} calls {{setCredentials(new AuthScope(host, port), credentials)}} with the endpoint's {{authHost}}, which is optional and null in the common basic-auth setup - {{new AuthScope(null, -1)}} matches any host, any port, any scheme. HttpClient then offers those credentials to whichever host issues a 401 Basic challenge.

Proposal: for the OAuth2 interceptor, compare the request's host against the endpoint's configured host and skip the header when they differ (or move the token onto the exec chain above {{RedirectExec}}). For basic auth, default the {{AuthScope}} host to the endpoint's host when {{authHost}} is not set.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)