我一直在尝试使用 Apache Camel 的 Http4 组件连接到需要基本身份验证的 HTTPS URL。连接需要通过经过身份验证的 HTTP 代理来完成。
因此,根据文档,我像这样配置 Camel 端点:
.toD("https4://target.host/resource?
bridgeEndpoint=true
&mapHttpMessageBody=false
&proxyAuthHost=my.proxy.host
&proxyAuthPort=myProxyPort
&proxyAuthUsername=proxyUser
&proxyAuthPassword=proxyPassword
&proxyAuthScheme=http4
&authenticationPreemptive=true
&authUsername=myUser
&authPassword=myPassword")
这会导致403 - Forbidden
来自目标服务器的响应。查看org.apache.http.wire
日志,它显示代理凭据proxyUser / proxyPassword被转发到目标服务器,而不是标头中的预期myUser / myPasswordAuthorization
。
调试 和 的源,CompositeHTTPConfigurer.configureHttpClient
似乎因为两个配置器都将其凭据设置为by ,因此其中一个在此过程中丢失 - 被覆盖。ProxyHttpClientConfigurer.configureHttpClient
BasicAuthenticationHttpClientConfigurer.configureHttpClient
HttpClientBuilder
setDefaultCredentialsProvider
看起来这可能是 Camel 的 Http4 组件中的错误?还是我错过了什么?
这是带有 Spring Boot 1.5.1.RELEASE 的 Camel 2.18.2。