Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-7064

DelegatingXMLStreamWriter.writeCData(text) writes several CDATA sections for a signed XML file

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Invalid
    • 3.1.7
    • Invalid
    • JAX-WS Runtime
    • None
    • windows 7/ linux centos 6

    • Unknown
    • Important

    Description

      HI,

      When implementing a CDATA interceptor in order to include a signed XML file in a SOAP envelope, we are getting several CDATA sections in the XML that makes the service reject the envelope:

      import java.util.regex.Pattern;
      
      import javax.xml.stream.XMLStreamException;
      import javax.xml.stream.XMLStreamWriter;
      
      import org.apache.cxf.staxutils.DelegatingXMLStreamWriter;
       
      /**
       * Simple CDATA XML Stream Writer that exports some items as CDATA
       */
      public class CDataXMLStreamWriter extends DelegatingXMLStreamWriter {
       
          private static final Pattern XML_CHARS = Pattern.compile( "[&<>]" );
          private static final String CDataOpen = "<![CDATA[";
          private static final String CDataClose = "]]>";
          
          public CDataXMLStreamWriter(XMLStreamWriter del) { 
          	super(del);
          } 
      
          @Override 
          public void writeCharacters(String text) throws XMLStreamException { 
          	boolean useCData = XML_CHARS.matcher( text ).find();
      
          	if (useCData) {
          		//super.writeCharacters(CDataOpen);
      System.out.println("text" + text);    		
          		//super.writeCharacters(text);
          		//super.writeCharacters(CDataClose);
          		super.writeCData(text);
          	}else { 
          		super.writeCharacters(text); 
          	} 
          }
          
          public void writeStartElement(String local) throws XMLStreamException { 
          	super.writeStartElement(local); 
          } 
      }
      
      

      That's urgent to solve this for us.

      This is an example of the unwanted output:
      EwJVWTErMCkGA1UECgwiQURNSU5JU1RSQUNJT04gTkFDSU9OQUwgREUgQ09SUk]]><![CDATA[VPUzEfMB0GA1UE]]><![CDATA[
      CwwWU0VSVklDSU9TIEVMRUNUUk9OSUNPUzEdMBsGA1UEAwwUQ29ycmVvIFVydWd1YXlvIC0gQ0Ew
      HhcNMTUxMTI3MTk0NzE4WhcNMTYxMTI3MTk0NzE4WjCBmzEmMCQGCSqGSIb3DQEJARYXdml0YW1p
      bmljby4wNUBnbWFpbC5jb20xEzARBgNVBAoMClZJVEFNSU5JQ08xEzARBgNVBAgMCk1vbnRldmlk
      ZW8xCzAJBgNVBAYTAlVZMRgwFgYDVQQFEw9SVUMyMTUyMTcxOTAwMTUxIDAeBgNVBAMMF1ZJTkFM
      UyBJVkFOSUNIIExFT05BUkRPMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6LdZWhEJaqiFa
      Zb1VG+o7aEckJT4hkFfTj1FqfBzbS/Ug4uXcESdmOahQPVCpJcG8jgW6HuCO1dlQ9P0Qwsxk+zjC
      He+Bm4+lnFQfcn1ClMvkGJzAxE/HJbBXkr1WD]]><![CDATA[pcDKVt4nhMjGYj5w77H1p2Fj3CXC0eMAlf9MpHD]]><![CDATA[
      gFy7pwIDAQABo4IBZjCCAWIwIgYDVR0RBBswGYEXdml0YW1pbmljby4wNUBnbWFpbC5jb20wDAYD
      VR0TAQH/BAIwADAOBgNVHQ8BAf8EBAMCA/gwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwME
      MBEGCWCGSAGG+EIBAQQEAwIFoDAdBgNVHQ4EFgQU96b4IO3javZcFCwkmb7fiyJsNXYwHwYDVR0j
      BBgwFoAUJY/fQy+OaroLvkZcV1CTt1G+/NkwVAYDVR0gBE0wSzBJBgwrBgEEAYH1TwEBAQQwOTA3
      BggrBgEFBQcCARYraHR0cDovL3d3dy5jb3JyZW8uY29tLnV5L2NvcnJlb2NlcnQvY3BzLnBkZjAY
      Bg0rBgEEAYH1TwEBAQQBBAcMBURpc2NvMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly93d3cuY29y
      cmVvLmNvbS51eS9Db3JyZW9DZXJ0L2FuYy5jc]]><![CDATA[mwwDQYJKoZIhvcNAQEFBQADggIBAJVsv8h04Qjn]]><![CDATA[
      JBGl0Z4DS9n47Fw+uFd9O9joLfDz0fIe1jbI9TEZ+9gfpw3+YiXIfSGOMP3i/MeIYSob42J5J9Ax
      vAmxhC4TTH/AD8VnbGdGmqbUaaQAtFandJMegHihSJt4dsfZZU3VZHxcFVZdAr/SVDvljRLlQ2tg
      onE0Z7de7xngFzfy0vfscI3AsVFuFb6FFQlLjRnc/30TmMbbmdFyVPGZvVLJqgTe5d8gSTwky282
      C9qd9kcI+zN8mGwq5ByW5JsrYbJbOO0vXZiV4WQNcq2Y42kYHHekWPPA9QwSGKe+hHQ216M98iLI
      BQukSWxoQkB+EP6jpluSYC+RSUlZ68e3lnaqx4AjM8jSCE6ZTMSvrKi9CGEIIcZ/EczpwnGzqBBw
      anMopB2yQGuoV7nnzyt9+O0MpEbxyXYzsWPhhqwXAgmyUyVXivg2HAjqAjhMTOLHDXLJLKKL0wUW
      q16jZshSpLTXzsO8rYtDl5bFXW6YjeTNBDm60]]><![CDATA[o4bTTFLLbfO1LZIM8JpubIzsE7+c4Ph4FTuW/Hx]]><![CDATA[
      OE8F8HkLk0X1bxf4o1Did3pDjXDlIafi66//F7z5gf8xJeams5/w7ToikOmW+pjpLolOT64RvY0W
      jQs5/FdEXu+7ivjrOk5xRzxdnKLIr9vUOYyFfE0627yA2mS8+uUWy41BISdsXI6z</X509Certificate></X509Data></KeyInfo></Signature></ns0:CFE></DGICFE:EnvioCFE>]]></xmlData>

      Attachments

        Activity

          People

            Unassigned Unassigned
            xavi.dive.kite@gmail.com Javier Irazazábal
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 168h
                168h
                Remaining:
                Remaining Estimate - 168h
                168h
                Logged:
                Time Spent - Not Specified
                Not Specified