When you send the request with Accept header and the api call failed due to authentication failure, by default WSO2 API Manager will return the application/xml as a response. However, If you want your Accept header to be honored in the authentication failure cases. In my sample, I have just introduced to handle JSON and default as XML.
Showing posts with label Header. Show all posts
Showing posts with label Header. Show all posts
Friday, July 22, 2016
Wednesday, February 18, 2015
WSO2 ESB SOAP headers lost
During the connector and we experience some of the SOAP header information are being dropped by the ESB.
Please find the retrieved SOAP headers from direct API call and ESB call below.
Response from Direct API call
|
Response from ESB call
|
<soap:Header>
<wsa:Action>RetrieveResponse</wsa:Action>
<wsa:MessageID>urn:uuid:7607e97e-463e-4fa2-92e9-afb48b90acda</wsa:MessageID>
<wsa:RelatesTo>urn:uuid:a7ddc645-63fa-471b-8dad-e5a7909e25a2</wsa:RelatesTo>
<wsa:To>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
<wsse:Security>
<wsu:Timestamp wsu:Id="Timestamp-abd7433b-821f-4a23-861e-83ade6857961">
<wsu:Created>2015-02-17T11:39:37Z</wsu:Created>
<wsu:Expires>2015-02-17T11:44:37Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
|
<soap:Header>
<wsse:Security>
<wsu:Timestamp wsu:Id="Timestamp-ec0a6c73-4633-437a-a555-6482f6a72f5d">
<wsu:Created>2015-02-17T11:57:44Z</wsu:Created>
<wsu:Expires>2015-02-17T12:02:44Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
|
We can observe that the API is returning complete set of header information to the ESB in wire log, yet ESB returns only a selected set from it as shown above.
Reason for this issue is WS Addressing headers are removed while sending out. This can be solved by introducing Synapse Property "PRESERVE_WS_ADDRESSING" ( <property name="PRESERVE_WS_ADDRESSING" value="true" scope="default" /> )
Further detail can be found in [1]
Subscribe to:
Posts (Atom)