cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: Configure retry limit for failed authentication in REST Client
Date Tue, 18 Dec 2012 16:26:18 GMT
Hi Jan
On 18/12/12 14:22, Jan Bernhardt wrote:
> Hi Sergey,
>
>> -----Original Message-----
>> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
>> Sent: Dienstag, 18. Dezember 2012 11:51
>> To: users@cxf.apache.org
>> Subject: Re: Configure retry limit for failed authentication in REST Client
>>
>> Hi Jan
>>
>> On 18/12/12 10:28, Jan Bernhardt wrote:
>>> It might be helpful to mention, that I use BASIC-Authentication here.
>>
>> It is interesting.
>> How do you enable basic auth on the client ? In HttpConduit or directly with
>> JAXRSClientFactoryBean ?
>
> I use setUsername(...) and setPassword(...) within JAXRSClientFactoryBean. I do not configure
HttpConduit manually in any way.
>
>>
>> I can see HttpConduit doing processRetransmit() calls every time it gets
>> 401 (I'm not sure why yet - may be to handle different realm combintations),
>> however it checks if the loop can be detected or not, and apparently, in your
>> case, no loop can be detected for up to 41 times :-)
>>
>> Can you please enable the client side logging so that we can see what is
>> returned from the server with every 401 ? You can add the logging feature or
>> LoggingInInterceptor,
>
> I added logging feature to my setup, but for some reasons I currently can't figure out,
I don't see any log messages on my console. But here is a sample message copied from my tcp-monitor
(they look all the same):
>
>      Status Code: 401 Unauthorized
>      Content-Length: 1033
>      Content-Type: text/html;charset=utf-8
>      Date: Tue, 18 Dec 2012 14:15:09 GMT
>      Server: Apache-Coyote/1.1
>      WWW-Authenticate: Basic realm="Spring Security Application"
>
> The HTTP Body contains an error message HTML encoded.
>

I'm not sure how to reproduce at the moment...
HttpConduit in CXF 2.7.1 will not do it by default - only if it's been 
configured to do autoredirects or retransmits or chunking or if the 
authentication supplier requests the stream caching...

We have a test running against Spring Security protected endpoint, it 
uses HttpClient, I updated it to use WebClient locally and can't get 
into HttpConduit#authorizationRetransmit after 401 gets back...

Can you please download CXF source and put few breakpoints in 
HttpConduit, specifically in HttpConduit#authorizationRetransmit ?

Thanks, Sergey

> Best regards.
> Jan
>
>>
>> Cheers, Sergey
>>
>>>
>>> Regards.
>>> Jan
>>>
>>>
>>>> -----Original Message-----
>>>> From: Jan Bernhardt [mailto:jbernhardt@talend.com]
>>>> Sent: Dienstag, 18. Dezember 2012 11:26
>>>> To: users@cxf.apache.org
>>>> Subject: Configure retry limit for failed authentication in REST
>>>> Client
>>>>
>>>> Hi CXF Users,
>>>>
>>>> is it possible to configure a maximum limit of automatic retries for
>>>> a CXF REST Client?
>>>>
>>>> I use JAXRSClientFactoryBean to create my service proxy. And when I
>>>> test a method with wrong credentials, I get 41 retries on my TCP
>>>> Monitor. So many false tries causes my account to be suspended...
>>>>
>>>> I think it would be best, if CXF only tries once by default and
>>>> throws an exception directly if authentication fails. Automatic
>>>> retries could be helpful in some cases but IMHO I don't think this should
>> be default behavior.
>>>>
>>>> WDYT?
>>>>
>>>> Best regards
>>>> Jan
>


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Mime
View raw message