Hi all, I have a technical problem as well as a related documentation issue to report. The technical problem is as follows:
HttpComponents 4.x provides a facility to use a HttpContext for a given request by calling HttpClient.execute(HttpUriRequest, HttpContext), but it looks like the http4 Camel Component doesn't have hooks to use this. Looking at the latest source of org.apache.camel.component.http4.HttpProducer, I only see one way of calling HttpClient.execute(): protected HttpResponse executeMethod(HttpUriRequest httpRequest) throws > IOException { > return httpClient.execute(httpRequest); > } Perhaps this could be made available in a similar fashion to HttpClientConfigurer? (for example creating a HttpContextConfigurer) My particular symptom is that I'm unable to force the http4 component to use preemptive authentication, which relies on HttpContext in HttpClient 4.x. In HttpClient 3.x, this was made possible by the HttpClientParams flag "authenticationPreemptive". However, it appears that this was removed for 4.x in favor of using HttpContext because of security concerns. The documentation issue is that the http4 Component docs claim that the httpClient.authenticationPreemptive=true flag will work the same way it does for the http Component, but it does not. I saw the following error when I tried to do so: Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to > resolve endpoint: > https4://<my_endpoint>?httpClient.authenticationPreemptive=true&httpClientConfigurer=myHttpClientConfigurer > due > to: There are 1 parameters that couldn't be set on the endpoint. Check the > uri if the parameters are spelt correctly and that they are properties of > the endpoint. Unknown parameters=[{authenticationPreemptive=true}] So it looks to me like the http4 Component should be updated to support setting a HttpContext for requests and the documentation should also be updated to reflect this change between HttpClient 3.x and 4.x. Thanks, Jeff