[ 
https://issues.apache.org/jira/browse/RAMPART-196?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vinay Cardoza closed RAMPART-196.
---------------------------------

       Resolution: Invalid
    Fix Version/s: 1.3
                   1.4

This is not a bug. This is due to C14n canonicalization rules. 

Link - http://www.w3.org/TR/xml-c14n.html

The CDATA tags are removed and replaced with the appropriate character content. 
For text nodes, < > & characters are escaped appropriately.



> Rampart removes CDATA markup from SOAPBody elements. Reproducible in versions 
> 1.3/1.4/1.4.1
> -------------------------------------------------------------------------------------------
>
>                 Key: RAMPART-196
>                 URL: https://issues.apache.org/jira/browse/RAMPART-196
>             Project: Rampart
>          Issue Type: Bug
>          Components: rampart-core
>    Affects Versions: 1.3, 1.4
>            Reporter: Vinay Cardoza
>            Assignee: Ruchith Udayanga Fernando
>            Priority: Blocker
>             Fix For: 1.4, 1.3
>
>
> Hi,
>  Rampart removes CDATA markup from the body of a SOAP Envelope. 
> This is a critical issue because data needs to be put in CDATA tags for the 
> recipient to process. We cannot reset the CDATA tags because we are signing 
> the message. If we modify the SOAP Body after Rampart's Security , then the 
> hash generated during signing will be wrong.
> Root cause of the problem 
> The CDATA disappears because the SOAPEnvelope is converted from AXIOM object 
> to an org.w3c.dom.Document object. I found this while I was debugging the 
> code. The exact class where the conversion is done is 
> RampartMessageData.class. 
> Steps to reproduce:
> The steps to reproduce are shown below. I have used Rampart 1.4 , example 04. 
> But the problem is persistent in Rampart 1.3, 1.4, 1.4.1 and on all OS.
> 1. Download Rampart 1.4 from 
> http://mirrors.enquira.co.uk/apache/ws/rampart/1_4/rampart-dist-1.4-bin.zip. 
> 2. Extract it to d:\ 
> 3. Ensure AXIS2_HOME is set to Axis2 1.4. Mine is d:\axis2-1.4. Ensure 
> ANT_HOME and JAVA_HOME is set. 
> 4. Open a command prompt. 
> prompt> cd D:\rampart-1.4\samples\ 
> prompt>ant 
> -------------The above step will copy the rampart jars to AXIS2_HOME 
> installation. 
> prompt> cd D:\rampart-1.4\samples\basic 
> prompt> ant service.04 
> 5. Edit 
> D:\rampart-1.4\samples\basic\sample04\src\org\apache\rampart\samples\sample04\Client.java
>  
> Add the imports. 
> import org.apache.axiom.om.impl.llom.OMTextImpl; 
> import javax.xml.stream.XMLStreamConstants; 
> In getPayload(), replace   
> childElem.setText(value); 
> with 
> OMTextImpl omText = (OMTextImpl) 
> childElem.getOMFactory().createOMText(childElem,value,XMLStreamConstants.CDATA);
>  
> Save the file. 
> 5. Open another DOS prompt. 
> prompt>  cd D:\rampart-1.4\samples\basic 
> prompt> ant client.04 
> Observe the SOAP request using TCP Monitor. 
> <soapenv:Body 
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
>  wsu:Id="id-22584918"> 
>           <ns1:echo xmlns:ns1="http://sample04.samples.rampart.apache.org";> 
>                     <param0>Hello world</param0> 
>           </ns1:echo> 
> </soapenv:Body> 
> The CDATA tag is not present. 
> 6. Edit D:\rampart-1.4\samples\basic\sample04\client.axis2.xml. Remove the 
> line  <module ref="rampart" /> and save the file. 
> 7. Repeat the step 5 and observe the SOAPBody in TCP Monitor. 
> <soapenv:Body><ns1:echo 
> xmlns:ns1="http://sample04.samples.rampart.apache.org";> 
>            <param0><![CDATA[Hello world]]></param0> 
> </ns1:echo></soapenv:Body> 
> The CDATA tag is intact. 
> Please advice. 
> Regards, 
> Vinay Cardoza 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to