2017-03-06 17 views
0

私はApache CamelのHttp4コンポーネントを使用して、基本認証が必要なHTTPS URLに接続しようとしています。接続は、認証されたHTTPプロキシを使用して行う必要があります。 基本認証とプロキシ認証を使用するCamel Http4

だから、 docsによると、私はこのようなキャメルのエンドポイントを設定:

ターゲットサーバから 403 - Forbidden応答をもたらす
.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") 

org.apache.http.wireログを見ると、それは、プロキシ認証情報 PROXYUSER/たproxyPasswordAuthorizationヘッダにMYPASSWORD意図 MYUSER/の代わりにターゲットサーバに転送されることを示しています。 CompositeHTTPConfigurer.configureHttpClientProxyHttpClientConfigurer.configureHttpClientBasicAuthenticationHttpClientConfigurer.configureHttpClientのソースをデバッグ

、両方のconfigurersがsetDefaultCredentialsProviderによってHttpClientBuilderに資格情報を設定しているためと思われ、そのうちの一つが失われる - 上書きされます - プロセスで。

CamelのHttp4コンポーネントのバグである可能性がありますか?または私は何かを逃している?

これはCamel 2.18.2 with Spring Boot 1.5.1.RELEASEです。

答えて

1

Apache Camel Users listでこの質問を出すと、バグが確認されたようです。

camel-http4の代わりにcamel-httpを使用して解決しました。エンドポイントのパラメータは微調整が必​​要でした:

.toD("https://target.host/resource? 
    bridgeEndpoint=true 

    &proxyHost=my.proxy.host 
    &proxyPort=myProxyPort 
    &proxyAuthUsername=proxyUser 
    &proxyAuthPassword=proxyPassword 
    &proxyAuthMethod=Basic 

    &authUsername=myUser 
    &authPassword=myPassword 
    &authMethod=Basic 
    &httpClient.authenticationPreemptive=true") 
関連する問題