J'ai essayé d'utiliser le composant Http4 d'Apache Camel pour me connecter à une URL HTTPS nécessitant une authentification de base. La connexion doit être effectuée via un proxy HTTP authentifié.Camel Http4 utilisant l'authentification de base et le proxy auth
Ainsi, selon la docs, je configure le point final Camel comme ceci:
.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")
qui se traduit par une réponse 403 - Forbidden
à partir du serveur cible. En regardant à travers les journaux org.apache.http.wire
, il montre que les informations d'identification de proxy PROXYUSER/ proxyPassword sont redirigés vers le serveur cible au lieu du destiné myUser/ myPassword dans l'en-tête Authorization
.
Débogage la source CompositeHTTPConfigurer.configureHttpClient
, ProxyHttpClientConfigurer.configureHttpClient
et BasicAuthenticationHttpClientConfigurer.configureHttpClient
, il semble que parce que les deux configurers établissent leurs pouvoirs au HttpClientBuilder
au moyen setDefaultCredentialsProvider
, l'un d'entre eux est perdu - ces fichiers sont écrasés - dans le processus.
On dirait que cela pourrait être un bug dans le composant Http4 de Camel? Ou est-ce que je manque quelque chose?
Ceci est Camel 2.18.2 avec Spring Boot 1.5.1.RELEASE.