Hi Seems like a good idea to add support for that HttpContext.
We love contributions http://camel.apache.org/contributing.html So feel free to create a JIRA and if possible attach a patch as well. On Thu, Nov 17, 2011 at 6:54 PM, Jeff Segal <jeffrey.se...@gmail.com> wrote: > 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 > -- Claus Ibsen ----------------- FuseSource Email: cib...@fusesource.com Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/