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

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

Okay, instead of stack traces, here are the partial thread-dumps:

{code:title=DOM-based}
at 
org.apache.xml.security.encryption.XMLCipher.decryptToByteArray(XMLCipher.java:1872)
          at 
org.apache.xml.security.encryption.XMLCipher.decryptElement(XMLCipher.java:1743)
          at 
org.apache.xml.security.encryption.XMLCipher.decryptElementContent(XMLCipher.java:1781)
          at 
org.apache.xml.security.encryption.XMLCipher.doFinal(XMLCipher.java:1031)
          at 
org.apache.wss4j.dom.processor.ReferenceListProcessor.decryptEncryptedData(ReferenceListProcessor.java:437)
          at 
org.apache.wss4j.dom.processor.EncryptedKeyProcessor.decryptDataRef(EncryptedKeyProcessor.java:545)
          at 
org.apache.wss4j.dom.processor.EncryptedKeyProcessor.decryptDataRefs(EncryptedKeyProcessor.java:480)
          at 
org.apache.wss4j.dom.processor.EncryptedKeyProcessor.handleToken(EncryptedKeyProcessor.java:230)
          at 
org.apache.wss4j.dom.processor.EncryptedKeyProcessor.handleToken(EncryptedKeyProcessor.java:69)
          at 
org.apache.wss4j.dom.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:427)
          at 
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessageInternal(WSS4JInInterceptor.java:278)
          at 
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:190)
          at 
org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor.handleMessage(PolicyBasedWSS4JInInterceptor.java:133)
          at 
org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor.handleMessage(PolicyBasedWSS4JInInterceptor.java:116)
          at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
          - locked <0x5231> (a org.apache.cxf.phase.PhaseInterceptorChain)
          at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
          at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)
          at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
          at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
          at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
          at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
          at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)
          at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:212)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
{code}

{code:title=StAX-based (decryption-thread)}
          at 
org.apache.xml.security.stax.impl.processor.input.AbstractDecryptInputProcessor$DecryptionThread.run(AbstractDecryptInputProcessor.java:814)
          at java.lang.Thread.run(Thread.java:745)
{code}

{code:title=StAX-based (calling thread - waiting on decryption thread, I 
suppose)}
          at java.lang.Object.wait(Object.java:-1)
          at java.io.PipedInputStream.read(PipedInputStream.java:327)
          at java.io.PipedInputStream.read(PipedInputStream.java:378)
          at 
org.apache.xml.security.stax.impl.util.MultiInputStream.read(MultiInputStream.java:59)
          at com.ctc.wstx.io.BaseReader.readBytes(BaseReader.java:155)
          at com.ctc.wstx.io.UTF8Reader.loadMore(UTF8Reader.java:369)
          at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:112)
          at com.ctc.wstx.io.MergedReader.read(MergedReader.java:104)
          at com.ctc.wstx.io.ReaderSource.readInto(ReaderSource.java:89)
          at 
com.ctc.wstx.io.BranchingReaderSource.readInto(BranchingReaderSource.java:57)
          at com.ctc.wstx.sr.StreamScanner.loadMore(StreamScanner.java:1006)
          at com.ctc.wstx.sr.StreamScanner.getNext(StreamScanner.java:765)
          at 
com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2786)
          at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1115)
          at 
org.apache.xml.security.stax.impl.processor.input.AbstractDecryptInputProcessor.forwardToWrapperElement(AbstractDecryptInputProcessor.java:371)
          at 
org.apache.xml.security.stax.impl.processor.input.AbstractDecryptInputProcessor.processEvent(AbstractDecryptInputProcessor.java:291)
          at 
org.apache.xml.security.stax.impl.processor.input.AbstractDecryptInputProcessor.processNextHeaderEvent(AbstractDecryptInputProcessor.java:141)
          at 
org.apache.xml.security.stax.impl.InputProcessorChainImpl.processHeaderEvent(InputProcessorChainImpl.java:188)
          at 
org.apache.wss4j.stax.impl.processor.input.OperationInputProcessor.processNextHeaderEvent(OperationInputProcessor.java:51)
          at 
org.apache.xml.security.stax.impl.InputProcessorChainImpl.processHeaderEvent(InputProcessorChainImpl.java:188)
          at 
org.apache.wss4j.policy.stax.PolicyInputProcessor.processNextHeaderEvent(PolicyInputProcessor.java:64)
          at 
org.apache.xml.security.stax.impl.InputProcessorChainImpl.processHeaderEvent(InputProcessorChainImpl.java:188)
          at 
org.apache.wss4j.stax.impl.processor.input.SecurityHeaderInputProcessor$InternalSecurityHeaderBufferProcessor.processNextHeaderEvent(SecurityHeaderInputProcessor.java:244)
          at 
org.apache.xml.security.stax.impl.InputProcessorChainImpl.processHeaderEvent(InputProcessorChainImpl.java:188)
          at 
org.apache.wss4j.stax.impl.processor.input.SecurityHeaderInputProcessor.processNextEvent(SecurityHeaderInputProcessor.java:86)
          at 
org.apache.xml.security.stax.impl.InputProcessorChainImpl.processEvent(InputProcessorChainImpl.java:193)
          at 
org.apache.xml.security.stax.impl.XMLSecurityStreamReader.next(XMLSecurityStreamReader.java:78)
          at 
org.apache.wss4j.stax.impl.WSSecurityStreamReader.next(WSSecurityStreamReader.java:45)
          at 
org.apache.xml.security.stax.impl.XMLSecurityStreamReader.getEventType(XMLSecurityStreamReader.java:395)
          at 
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:161)
          at 
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:65)
          at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
          - locked <0x66e2> (a org.apache.cxf.phase.PhaseInterceptorChain)
          at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
          at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)
          at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
          at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
          at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
          at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
          at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)
          at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:212)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
{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