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/

Reply via email to