You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Jose María Zaragoza <de...@gmail.com> on 2015/06/11 16:02:08 UTC

http-conf:conduit : configure global settings for all proxy clients

Hello:

I'm using CXF 2.7.8 to implement several webservice proxy clients  (
SOAP , REST )

All of them have the same timeout parameters:

<http-conf:conduit name="http://.*">
       <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000" />
</http-conf:conduit>

Now, one of them ( http://foo.com/ )  needs BASIC auth


If I configure

<http-conf:conduit name="http://.*">
       <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000" />
</http-conf:conduit>

<http-conf:conduit name="http://foo.com/.*">
       <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000" />
       <http-conf:authorization>
      <sec:UserName>xxx</sec:UserName>
             <sec:Password>xxx</sec:Password>
      </http-conf:authorization>
</http-conf:conduit>


foo.com's proxy client takes the first configuration , not the more
restrictive .
That's weird for me . Shouldn't it be more more restrictive first ?


How I can configure global settings for all proxy clients and to set
individual parameters to one proxy client ?

Thanks and regards

Re: http-conf:conduit : configure global settings for all proxy clients

Posted by Sergey Beryozkin <sb...@gmail.com>.
I've looked at this issue and as far as multiple conduits with regular 
expressions are concerned it is difficult for CXF to figure out which is 
more specific - the specifics are effective encoded in the regular 
expressions so it is hard to know which one is more specific.

However I've updated CXF starting from 3.0.x to do a basic sorting of 
such expressions using a number of characters as a key, this should 
cover nearly 100% of cases with reasonably simple expressions. I did not 
merge it to 2.7.x, I reckon it is safe, but just in case, given 2.7.x is 
very close to the end of the lifecycle, I did not merge to 2.7.x.

In 2.7.x you can still do it by restricting the wider wildcard 
expression, perhaps similar to
http://stackoverflow.com/questions/2078915/a-regular-expression-to-exclude-a-word-string

Note the placeholder related issue is different to this one and still 
needs to be addressed

Cheers, Sergey



On 16/06/15 12:36, Jose María Zaragoza wrote:
> 2015-06-16 13:33 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
>> Hi, this is probably related to
>> https://issues.apache.org/jira/browse/CXF-5320
>
> Sure.
>
> Thanks
>
>>
>> Cheers, Sergey
>>
>> On 11/06/15 15:33, Jose María Zaragoza wrote:
>>>
>>> 2015-06-11 16:02 GMT+02:00 Jose María Zaragoza <de...@gmail.com>:
>>>>
>>>> Hello:
>>>>
>>>> I'm using CXF 2.7.8 to implement several webservice proxy clients  (
>>>> SOAP , REST )
>>>>
>>>> All of them have the same timeout parameters:
>>>>
>>>> <http-conf:conduit name="http://.*">
>>>>          <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000"
>>>> />
>>>> </http-conf:conduit>
>>>>
>>>> Now, one of them ( http://foo.com/ )  needs BASIC auth
>>>>
>>>>
>>>> If I configure
>>>>
>>>> <http-conf:conduit name="http://.*">
>>>>          <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000"
>>>> />
>>>> </http-conf:conduit>
>>>>
>>>> <http-conf:conduit name="http://foo.com/.*">
>>>>          <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000"
>>>> />
>>>>          <http-conf:authorization>
>>>>         <sec:UserName>xxx</sec:UserName>
>>>>                <sec:Password>xxx</sec:Password>
>>>>         </http-conf:authorization>
>>>> </http-conf:conduit>
>>>>
>>>
>>> Well , i think my problem is using a  placeholder as
>>> http-conf:conduit's name property
>>> Cannot I use a placeholder as http-conf:conduit's name property  ?
>>>
>>>
>>> Regards
>>>
>>>
>>>
>>>>
>>>> foo.com's proxy client takes the first configuration , not the more
>>>> restrictive .
>>>> That's weird for me . Shouldn't it be more more restrictive first ?
>>>>
>>>>
>>>> How I can configure global settings for all proxy clients and to set
>>>> individual parameters to one proxy client ?
>>>>
>>>> Thanks and regards
>>
>>


-- 
Sergey Beryozkin

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

Blog: http://sberyozkin.blogspot.com

Re: http-conf:conduit : configure global settings for all proxy clients

Posted by Jose María Zaragoza <de...@gmail.com>.
2015-06-16 13:33 GMT+02:00 Sergey Beryozkin <sb...@gmail.com>:
> Hi, this is probably related to
> https://issues.apache.org/jira/browse/CXF-5320

Sure.

Thanks

>
> Cheers, Sergey
>
> On 11/06/15 15:33, Jose María Zaragoza wrote:
>>
>> 2015-06-11 16:02 GMT+02:00 Jose María Zaragoza <de...@gmail.com>:
>>>
>>> Hello:
>>>
>>> I'm using CXF 2.7.8 to implement several webservice proxy clients  (
>>> SOAP , REST )
>>>
>>> All of them have the same timeout parameters:
>>>
>>> <http-conf:conduit name="http://.*">
>>>         <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000"
>>> />
>>> </http-conf:conduit>
>>>
>>> Now, one of them ( http://foo.com/ )  needs BASIC auth
>>>
>>>
>>> If I configure
>>>
>>> <http-conf:conduit name="http://.*">
>>>         <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000"
>>> />
>>> </http-conf:conduit>
>>>
>>> <http-conf:conduit name="http://foo.com/.*">
>>>         <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000"
>>> />
>>>         <http-conf:authorization>
>>>        <sec:UserName>xxx</sec:UserName>
>>>               <sec:Password>xxx</sec:Password>
>>>        </http-conf:authorization>
>>> </http-conf:conduit>
>>>
>>
>> Well , i think my problem is using a  placeholder as
>> http-conf:conduit's name property
>> Cannot I use a placeholder as http-conf:conduit's name property  ?
>>
>>
>> Regards
>>
>>
>>
>>>
>>> foo.com's proxy client takes the first configuration , not the more
>>> restrictive .
>>> That's weird for me . Shouldn't it be more more restrictive first ?
>>>
>>>
>>> How I can configure global settings for all proxy clients and to set
>>> individual parameters to one proxy client ?
>>>
>>> Thanks and regards
>
>

Re: http-conf:conduit : configure global settings for all proxy clients

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi, this is probably related to
https://issues.apache.org/jira/browse/CXF-5320

Cheers, Sergey
On 11/06/15 15:33, Jose María Zaragoza wrote:
> 2015-06-11 16:02 GMT+02:00 Jose María Zaragoza <de...@gmail.com>:
>> Hello:
>>
>> I'm using CXF 2.7.8 to implement several webservice proxy clients  (
>> SOAP , REST )
>>
>> All of them have the same timeout parameters:
>>
>> <http-conf:conduit name="http://.*">
>>         <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000" />
>> </http-conf:conduit>
>>
>> Now, one of them ( http://foo.com/ )  needs BASIC auth
>>
>>
>> If I configure
>>
>> <http-conf:conduit name="http://.*">
>>         <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000" />
>> </http-conf:conduit>
>>
>> <http-conf:conduit name="http://foo.com/.*">
>>         <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000" />
>>         <http-conf:authorization>
>>        <sec:UserName>xxx</sec:UserName>
>>               <sec:Password>xxx</sec:Password>
>>        </http-conf:authorization>
>> </http-conf:conduit>
>>
>
> Well , i think my problem is using a  placeholder as
> http-conf:conduit's name property
> Cannot I use a placeholder as http-conf:conduit's name property  ?
>
>
> Regards
>
>
>
>>
>> foo.com's proxy client takes the first configuration , not the more
>> restrictive .
>> That's weird for me . Shouldn't it be more more restrictive first ?
>>
>>
>> How I can configure global settings for all proxy clients and to set
>> individual parameters to one proxy client ?
>>
>> Thanks and regards


Re: http-conf:conduit : configure global settings for all proxy clients

Posted by Jose María Zaragoza <de...@gmail.com>.
2015-06-11 16:02 GMT+02:00 Jose María Zaragoza <de...@gmail.com>:
> Hello:
>
> I'm using CXF 2.7.8 to implement several webservice proxy clients  (
> SOAP , REST )
>
> All of them have the same timeout parameters:
>
> <http-conf:conduit name="http://.*">
>        <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000" />
> </http-conf:conduit>
>
> Now, one of them ( http://foo.com/ )  needs BASIC auth
>
>
> If I configure
>
> <http-conf:conduit name="http://.*">
>        <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000" />
> </http-conf:conduit>
>
> <http-conf:conduit name="http://foo.com/.*">
>        <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000" />
>        <http-conf:authorization>
>       <sec:UserName>xxx</sec:UserName>
>              <sec:Password>xxx</sec:Password>
>       </http-conf:authorization>
> </http-conf:conduit>
>

Well , i think my problem is using a  placeholder as
http-conf:conduit's name property
Cannot I use a placeholder as http-conf:conduit's name property  ?


Regards



>
> foo.com's proxy client takes the first configuration , not the more
> restrictive .
> That's weird for me . Shouldn't it be more more restrictive first ?
>
>
> How I can configure global settings for all proxy clients and to set
> individual parameters to one proxy client ?
>
> Thanks and regards