APAR status
Closed as program error.
Error description
Customer stated that a server-side XML message is serialized
incorrectly
for messages that contain XML namespace prefixes that are
defined in a
parent Element but not defined on the Element that is using the
prefix.
Examples below:
*******BEGIN MSG THAT SERIALIZED CORRECTLY********
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<wsse:RequestSecurityToken
wsu:Id="6833b254:f7ee7502dd:-8000"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2002/12/policy"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<wsse:RequestType
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">wsse:R
eqIssue<
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">wsse:R
eqIssue<
/wsse:RequestType>
<wsse:TokenType
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">wsse:U
sernameT
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">wsse:U
sernameT
oken</wsse:TokenType>
</wsse:RequestSecurityToken>
</soapenv:Body>
</soapenv:Envelope>
*******END MSG THAT SERIALIZED CORRECTLY********
*******BEGIN MSG THAT SERIALIZED INCORRECTLY********
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<wsse:RequestSecurityToken
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
<wsse:RequestType>wsse:ReqIssue</wsse:RequestType>
<wsse:TokenType>wsse:UsernameToken</wsse:TokenType>
</wsse:RequestSecurityToken>
</soapenv:Body>
</soapenv:Envelope>
*******END MSG THAT SERIALIZED INCORRECTLY********
The second message above used the namespace
prefix wsse
(at Elements wsse:RequestType and wsse:TokenType) and it had the
prefix
was defined correctly in the parent but the message did not
serialize
correctly.
L3 Web Services performed web service trace on test case and
saww that SOAPElment.asSOAPElement is being called when reading
TokenType with the following output:
SOAPElement d
com.ibm.ws.webservices.engine.xmlsoap.SOAPElement
asSOAPElement xmlText=<wsse:RequestSecurityToken
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">wsse:S
AMLAsser
tion</wsse:RequestSecurityToken>
For some reason, the wsse:SAMLAssertion text is placed as a
child of
RequestSecurityToken instead of TokenType.
Use of SOAPElement has not been tested because it isn't defined
in the JAX-RPC specs. However, level 3 has decided to resolve
this problem. This will involve major decisions on how we
implement support for SOAPElement, so ETA is not available.
Local fix
Disabling parsing optimization may prevent the problem, but this
is not recommended due to performance impact.
Problem summary
****************************************************************
* USERS AFFECTED: WebSphere Application Server users of web *
* services *
****************************************************************
* PROBLEM DESCRIPTION: Using SOAPElement type causes web *
* service request message using XML *
* namespaces to be deserialized *
* incorrectly *
****************************************************************
* RECOMMENDATION: *
****************************************************************
When using the SOAPElement type, request messages which using
XML namespaces and expect the namespace to propagate down to a
child element results in the child element being deserialized
incorrectly to the wrong parent element.
Problem conclusion
Deserialization for SOAPElement types was modified to avoid
incorrect placement of child elements to parent elements
Temporary fix Comments
APAR information |
APAR number |
PQ80111 |
Reported component name |
WAS BASE 5.0 |
Reported component ID |
5630A3600 |
Reported release |
00W |
Status |
CLOSED PER |
PE |
NoPE |
HIPER |
NoHIPER |
Special Attention |
NoSpecatt |
Submitted date |
2003-10-27 |
Closed date |
2003-11-19 |
Last modified date |
2003-11-19 |
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Modules/Macros
Publications Referenced
Applicable component levels |
R003 PSY |
UP |
R00A PSY |
UP |
R00H PSY |
UP |
R00I PSY |
UP |
R00P PSY |
UP |
R00S PSY |
UP |
R00W PSY |
UP |
|