« Return to Thread: Addressing Namespace

Re: Addressing Namespace

by Jens Goldhammer :: Rate this Message:

Reply to Author | View in Thread

Hello Alexandre,

maybe you can write your own mediator which has full access to the soap
message. Then you can use the axiom model to get the attribute of the
root-element and change the value of the prefix. I think, this has to
work. Maybe you can use the build-in-mediators for doing that.

A good start is http://wso2.org/library/2898 for writing own mediators.

Bye,
Jens

alexandre_garino schrieb:

> Hi,
>
> I experience a new issue. Let me explain once again what I want to achieve
> before going deeper.
>
> Components Diagram
>
> SoapUI (as consumer) -- HTTP --> ESB (dealing with WS-Security Specs) --
> HTTPS --> Web Service (implemented in .Net)
>
>
> Issue Description
>
> If I try to consume the web service through the ESB with SoapUI I never get
> a response from the ESB. The ESB console outputs this kind of message:
>
> 2008-04-09 18:50:58,984 [10.130.30.202-ddmorginweb] [HttpClientWorker-1]
> WARN SynapseCallbackReceiver Synapse received a response for the request
> with message Id : urn:uuid:f17b562f-a619-42ee-ae61-6c5a0d24bde8 But a
> callback is not registered (anymore) to process this response
>
> SOAP messages exchanged between components follow:
>
> SOAP Message sent by SoapUI
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>     <soapenv:Header/>
>     <soapenv:Body>
>         [Not disclosed for security concerns]
>     </soapenv:Body>
> </soapenv:Envelope>
>
>
> SOAP Message sent by the ESB (WSDoAllSender)
>
> <?xml version='1.0' encoding='utf-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>     <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
>         <wsa:To>[Not disclosed for security concerns]</wsa:To>
>        
> <wsa:MessageID>urn:uuid:6B27C12D9152A7EA33692465354606522-515329868</wsa:MessageID>
>         <wsa:Action>[Not disclosed for security concerns]</wsa:Action>
>     </soapenv:Header>
>     <soapenv:Body>
>         [Not disclosed for security concerns]
>     </soapenv:Body>
> </soapenv:Envelope>
>
>
> SOAP Message sent by the ESB (Rampart)
>
> <?xml version='1.0' encoding='utf-8'?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>     <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
>         <wsse:Security
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
> soapenv:mustUnderstand="1">
>             <wsu:Timestamp
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
> wsu:Id="Timestamp-3853415">
>                 <wsu:Created>2008-04-09T15:50:57.062Z</wsu:Created>
>                 <wsu:Expires>2008-04-09T15:55:57.062Z</wsu:Expires>
>             </wsu:Timestamp>
>             <wsse:UsernameToken
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
> wsu:Id="UsernameToken-27471524">
>                 <wsse:Username>[Not disclosed for security
> concerns]</wsse:Username>
>                 <wsse:Password
> Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">[Not
> disclosed for security concerns]</wsse:Password>
>                 <wsse:Nonce>GT9CvQZckbZSBtKNJabPMg==</wsse:Nonce>
>                 <wsu:Created>2008-04-09T15:50:57Z</wsu:Created>
>             </wsse:UsernameToken>
>         </wsse:Security>
>         <wsa:To>[Not disclosed for security concerns]</wsa:To>
>        
> <wsa:MessageID>urn:uuid:6B27C12D9152A7EA33692465354606522-515329868</wsa:MessageID>
>         <wsa:Action>[Not disclosed for security concerns]</wsa:Action>
>     </soapenv:Header>
>     <soapenv:Body>
>         [Not disclosed for security concerns]
>     </soapenv:Body>
> </soapenv:Envelope>
>
>
> SOAP Message received by the ESB (Rampart)
>
> <?xml version='1.0' encoding='utf-8'?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>     <soap:Header>
>         <wsa:Action>[Not disclosed for security concerns]</wsa:Action>
>        
> <wsa:MessageID>urn:uuid:2ad8950e-48a5-4a74-8d99-ad76cc7fc74c</wsa:MessageID>
>        
> <wsa:RelatesTo>urn:uuid:f17b562f-a619-42ee-ae61-6c5a0d24bde8</wsa:RelatesTo>
>        
> <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
>         <wsse:Security>
>             <wsu:Timestamp
> wsu:Id="Timestamp-f045a341-b821-4a80-a806-6bebad91c4ef">
>                 <wsu:Created>2008-04-09T15:52:55Z</wsu:Created>
>                 <wsu:Expires>2008-04-09T15:57:55Z</wsu:Expires>
>             </wsu:Timestamp>
>         </wsse:Security>
>     </soap:Header>
>     <soap:Body>
>         [Not disclosed for security concerns]
>     </soap:Body>
> </soap:Envelope>
>
>
> SOAP Message received by the ESB (WSDoAllReceiver)
>
> <?xml version='1.0' encoding='utf-8'?>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>     <soap:Header>
>         <wsa:Action>[Not disclosed for security concerns]</wsa:Action>
>        
> <wsa:MessageID>urn:uuid:2ad8950e-48a5-4a74-8d99-ad76cc7fc74c</wsa:MessageID>
>        
> <wsa:RelatesTo>urn:uuid:f17b562f-a619-42ee-ae61-6c5a0d24bde8</wsa:RelatesTo>
>        
> <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
>         <wsse:Security>
>             <wsu:Timestamp
> wsu:Id="Timestamp-f045a341-b821-4a80-a806-6bebad91c4ef">
>                 <wsu:Created>2008-04-09T15:52:55Z</wsu:Created>
>                 <wsu:Expires>2008-04-09T15:57:55Z</wsu:Expires>
>             </wsu:Timestamp>
>         </wsse:Security>
>     </soap:Header>
>     <soap:Body>
>         [Not disclosed for security concerns]
>     </soap:Body>
> </soap:Envelope>
>
>
> SOAP Message received by SoapUI
>
> None
>
>
> Leads
>
> I noticed that the .net web service (proprietary) fills the RelatesTo
> element with a new UUID, I suppose that a valid ID should be the MessageID
> element sent by Rampart. So the ESB can't find the callback related to and
> this is why SoapUI never gets back the response.
>
> I implemented a .Net client in order to trace messages exchanged.
>
> Request
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
>     <soap:Header>
>         <wsa:Action>[Not disclosed for security concerns]</wsa:Action>
>        
> <wsa:MessageID>urn:uuid:e27c9c99-1488-45f7-9992-f76e70769908</wsa:MessageID>
>         <wsa:ReplyTo>
>            
> <wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
>         </wsa:ReplyTo>
>         <wsa:To>[Not disclosed for security concerns]</wsa:To>
>         <wsse:Security soap:mustUnderstand="1">
>             <wsu:Timestamp
> wsu:Id="Timestamp-2943ec42-b0d1-4853-a2c5-a97caa3bd946">
>                 <wsu:Created>2008-04-10T08:36:11Z</wsu:Created>
>                 <wsu:Expires>2008-04-10T08:41:11Z</wsu:Expires>
>             </wsu:Timestamp>
>             <wsse:UsernameToken
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
> wsu:Id="SecurityToken-f1f7951a-ea82-4a41-8627-72dd9aa7be0c">
>                 <wsse:Username>********</wsse:Username>
>                 <wsse:Password
> Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">********</wsse:Password>
>                 <wsse:Nonce>RBjvPCovI6C7M8VNct15KQ==</wsse:Nonce>
>                 <wsu:Created>2008-04-10T08:36:11Z</wsu:Created>
>             </wsse:UsernameToken>
>         </wsse:Security>          
>     </soap:Header>
>     <soap:Body>
>         [Not disclosed for security concerns]
>     </soap:Body>
> </soap:Envelope>
>      
>      
> Response
>      
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
>     <soap:Header>
>         <wsa:Action>[Not disclosed for security concerns]</wsa:Action>
>        
> <wsa:MessageID>urn:uuid:a51b94d7-998e-4bd2-b641-834b437ccf03</wsa:MessageID>
>        
> <wsa:RelatesTo>urn:uuid:e27c9c99-1488-45f7-9992-f76e70769908</wsa:RelatesTo>
>        
> <wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
>         <wsse:Security>
>             <wsu:Timestamp
> wsu:Id="Timestamp-dc029518-1378-438c-81ad-49dd1ff66d1c">
>                 <wsu:Created>2008-04-10T08:38:08Z</wsu:Created>
>                 <wsu:Expires>2008-04-10T08:43:08Z</wsu:Expires>
>             </wsu:Timestamp>
>         </wsse:Security>
>     </soap:Header>
>     <soap:Body>
>         [Not disclosed for security concerns]
>     </soap:Body>
> </soap:Envelope>
>      
> As we can see, the RelatesTo element is correct when I concume the web
> service from a .net client. After many tests I know that the issue is
> related to the namespace used for addressing. The request should utilize
> http://schemas.xmlsoap.org/ws/2004/08/addressing instead of
> http://www.w3.org/2005/08/addressing.
>
> Consequently the question resolving this issue is: How do i do to change the
> namespace by the correct one for each request sent by the ESB (and for this
> specific proxy if possible)? Could I enforce the addressing namespace via
> the WS-Policy file?
>
> Regards,
> Alexandre
>  

 « Return to Thread: Addressing Namespace