cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Kulp (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (CXF-7064) DelegatingXMLStreamWriter.writeCData(text) writes several CDATA sections for a signed XML file
Date Thu, 22 Sep 2016 13:17:21 GMT

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

Daniel Kulp updated CXF-7064:
-----------------------------
    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:


{code:java}
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); 
    } 
}

{code:java}

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>


  was:
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:


{code:java}
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); 
    } 
}
{code:java}
That's urgent to solve this for us. 

This is an example of the unwanted output:
{code:xml}
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>
{code:xml}


> DelegatingXMLStreamWriter.writeCData(text) writes several CDATA sections for a signed
XML file
> ----------------------------------------------------------------------------------------------
>
>                 Key: CXF-7064
>                 URL: https://issues.apache.org/jira/browse/CXF-7064
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 3.1.7
>         Environment: windows 7/ linux centos 6
>            Reporter: Javier Irazazábal
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> 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: 
> {code:java}
> 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); 
>     } 
> }
> {code:java}
> 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>



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message