cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jose María Zaragoza <demablo...@gmail.com>
Subject Re: WS-Addressing example from CXF 3.0.0
Date Thu, 10 Jul 2014 18:48:20 GMT
2014-07-10 15:21 GMT+02:00 Daniel Kulp <dkulp@apache.org>:
>
> In general, CXF routes requests based on the target URI/address, not the Action, although
there are some exceptions to that….
>
> In general, CXF only allows a single endpoint to be deployed on a specific address. 
 Through the MultipleEndpointObserver stuff, it’s possible to do it, but it’s not exactly
easy.
>
> So… where is the Action used?   Under normal circumstances, the Action will be looked
at by various interceptors on the chain that may be looking for a specific Action.   For example,
if WS-RM is configured, the RM interceptors will be looking for Actions that pertain to RM
(CreateSequence, etc…) at which point they will re-route the request into the RM stuff.
  WS-SecureConversation is another example.  It’s interceptor will look for Actions related
to issue/renew/cancel tokens.   WS-Mex is another.      Basically, if it gets through the
chain without something “intercepting” the request, the request just goes to the normal
endpoint like a normal request and is handled via the contents of the soap body.     We likely
SHOULD have a check in there to make sure the Action matches like we do check to make sure
the SOAPAction header (if specified) matches.


Thanks Daniel. Good explanation
What kind of checking is applied to SOAPAction ?  SOAPAction == URI requested ?




>
> That said, writing this has kind of gotten me thinking…..   Those three uses cases
likely could be re-written in terms of the MulipleEndpointObserver stuff with an Observer
that would route based on the Actions.    Each of those three would just need to register
an Endpoint with the Action based observer and it would handle the routing.     That’s a
lot of code to refactor though…  Hmmm…..
>
> Dan
>
>
>
> On Jul 9, 2014, at 10:14 AM, Richard Snowden <richard.t.snowden@gmail.com> wrote:
>
>> Hi,
>>
>> I'm working with the WS-Addressing example from CXF 3.0.0 found here:
>> apache-cxf-3.0.0-src\distribution\src\main\release\samples\ws_addressing\
>>
>> I captured one request, sent from client to server, and used Chromes
>> Postman extension to modify it:
>> - made sure there's no SOAPAction the HTTP-Header
>> - set wsa:Action to some random value, like "blablabla"
>>
>> Surprisingly it still worked!
>>
>> It seems the WS-Addressing SOAP-Header field "Action" is not used at all in
>> CXF. Is this a bug or a feature? ;-)
>>
>>
>> Here is one of my requests:
>>
>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>>    <soap:Header>
>>        <Action xmlns="http://www.w3.org/2005/08/addressing
>> ">blablabla</Action>
>>        <MessageID xmlns="http://www.w3.org/2005/08/addressing
>> ">urn:uuid:fa46e01c-f5c7-4d5b-b653-0f79d59885e8</MessageID>
>>        <To xmlns="http://www.w3.org/2005/08/addressing">
>> http://localhost:9000/SoapContext/SoapPort</To>
>>        <ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
>>            <Address>http://www.w3.org/2005/08/addressing/anonymous
>> </Address>
>>        </ReplyTo>
>>    </soap:Header>
>>    <soap:Body>
>>        <greetMe xmlns="http://apache.org/hello_world_soap_http/types">
>>            <requestType>rsnowden</requestType>
>>        </greetMe>
>>    </soap:Body>
>> </soap:Envelope>
>
> --
> Daniel Kulp
> dkulp@apache.org - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>

Mime
View raw message