[ 
https://issues.apache.org/jira/browse/CXF-6409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14561445#comment-14561445
 ] 

Dallas Vaughan commented on CXF-6409:
-------------------------------------

Hi Colm,
I checked out the 3.0.x-fixes branch and installed locally, and, while it looks 
like it's using the new BinarySecurity class, it is failing in the setToken 
method. It's throwing a NullPointerException on {{node.setData(...)}} (line 
214) because of the following (in comments):

{code:title=BinarySecurity.class}
    public void setToken(byte[] data) {
        if(data == null) {
            throw new IllegalArgumentException("data == null");
        } else {
            Text node = this.getFirstNode(); //returns null
            node.setData(Base64.encode(data)); //throws NPE
        }
    }

    protected Text getFirstNode() {
        Node node = this.element.getFirstChild(); //node = <xop:Include>
        return node != null && 3 == node.getNodeType()?(Text)node:null; 
//node.getNodeType() = 1, so this returns null
    }
{code}

> CXF web service cannot process MTOM/XOP-optimized content within a 
> CipherValue element
> --------------------------------------------------------------------------------------
>
>                 Key: CXF-6409
>                 URL: https://issues.apache.org/jira/browse/CXF-6409
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 3.0.4
>            Reporter: Dallas Vaughan
>            Assignee: Colm O hEigeartaigh
>
> When a CXF (WS-Security streaming-enabled) web service endpoint is configured 
> to use WS-Security and MTOM, CXF cannot handle requests from .NET and Metro 
> clients because it cannot process {{xop:Include}} elements that are children 
> of {{enc:CipherValue}} elements, as both of these clients will optimize any 
> large encrypted (base64-encoded binary) content by serializing it as a MIME 
> part.
> For example, when a Metro MTOM-optimized WS-Security-based request is sent to 
> a CXF endpoint, the following exception is thrown within 
> {{org.apache.xml.security.stax.impl.processor.input.AbstractDecryptInputProcessor$DecryptionThread.run()}}:
> {code}org.apache.xml.security.exceptions.XMLSecurityException: Unexpected 
> StAX-Event: START_ELEMENT{code}
> This makes it impossible for .NET and Metro clients to communicate with CXF 
> endpoints which have the MTOM and encryption policies specified.



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

Reply via email to