You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by anpoky <an...@pokrzywinski.de> on 2015/10/06 13:14:26 UTC

WSS Client soap:fault namespace problem

I think my issue might be related to 
https://issues.apache.org/jira/browse/CXF-6319
<https://issues.apache.org/jira/browse/CXF-6319>  

As a client I receive a signed and encrypted message  with attachements. It
is just the body part encrypted and signed. Decryption works but I get this
error code:

Caused by: org.apache.wss4j.common.ext.WSSecurityException: The prefix
"soap" for element "soap:Fault" is not bound.
Original Exception was org.xml.sax.SAXParseException; lineNumber: 1;
columnNumber: 13; The prefix "soap" for element "soap:Fault" is not bound.
	at
org.apache.wss4j.dom.util.EncryptionUtils.decryptEncryptedData(EncryptionUtils.java:186)
	at
org.apache.wss4j.dom.processor.EncryptedKeyProcessor.decryptDataRef(EncryptedKeyProcessor.java:550)
	at
org.apache.wss4j.dom.processor.EncryptedKeyProcessor.decryptDataRefs(EncryptedKeyProcessor.java:481)
	at
org.apache.wss4j.dom.processor.EncryptedKeyProcessor.handleToken(EncryptedKeyProcessor.java:199)
	at
org.apache.wss4j.dom.processor.EncryptedKeyProcessor.handleToken(EncryptedKeyProcessor.java:76)
	at
org.apache.wss4j.dom.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:429)
	at
org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessageInternal(WSS4JInInterceptor.java:280)
	... 50 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 13;
The prefix "soap" for element "soap:Fault" is not bound.
	at
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
	at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347)
	at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
	at
org.apache.xml.security.utils.XMLUtils$DocumentBuilderProxy.parse(XMLUtils.java:1114)
	at
org.apache.wss4j.dom.util.EncryptionUtils.decryptXopAttachment(EncryptionUtils.java:366)
	at
org.apache.wss4j.dom.util.EncryptionUtils.decryptEncryptedData(EncryptionUtils.java:179)

The raw response server message (before encryption and attachment), that the
client cannot parse, is:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
  </soap:Header>
  <soap:Body>
    <soap:Fault>
      <faultcode>soap:Server</faultcode>
      <faultstring>Error</faultstring>
      <detail>
      </detail>
    </soap:Fault>
  </soap:Body>
</soap:Envelope>

I guess, that the encrypted body is attached read and DOM parsed seperatly
without namespace information, cause the "soap" namespace is declared in the
envelope.

BTW, the good out messsage works, it just not working for the fault
messages.

Is this a bug of cxf and how could I fixe it on the client side?

Versions: 
cxf-core 3.1.3 
cxr-rt-ws-security 3.1.3 
wss4j 2.1.2 
cxr-rt-ws-policy 3.1.3



--
View this message in context: http://cxf.547215.n5.nabble.com/WSS-Client-soap-fault-namespace-problem-tp5761485.html
Sent from the cxf-user mailing list archive at Nabble.com.

Re: WSS Client soap:fault namespace problem

Posted by Colm O hEigeartaigh <co...@apache.org>.
It looks like a bug, could you file a JIRA for it? What does the secured
response look like? In what way is it different (other than being a Fault)
than a normal response that is processed correctly?

Colm.

On Tue, Oct 6, 2015 at 12:14 PM, anpoky <an...@pokrzywinski.de> wrote:

> I think my issue might be related to
> https://issues.apache.org/jira/browse/CXF-6319
> <https://issues.apache.org/jira/browse/CXF-6319>
>
> As a client I receive a signed and encrypted message  with attachements. It
> is just the body part encrypted and signed. Decryption works but I get this
> error code:
>
> Caused by: org.apache.wss4j.common.ext.WSSecurityException: The prefix
> "soap" for element "soap:Fault" is not bound.
> Original Exception was org.xml.sax.SAXParseException; lineNumber: 1;
> columnNumber: 13; The prefix "soap" for element "soap:Fault" is not bound.
>         at
>
> org.apache.wss4j.dom.util.EncryptionUtils.decryptEncryptedData(EncryptionUtils.java:186)
>         at
>
> org.apache.wss4j.dom.processor.EncryptedKeyProcessor.decryptDataRef(EncryptedKeyProcessor.java:550)
>         at
>
> org.apache.wss4j.dom.processor.EncryptedKeyProcessor.decryptDataRefs(EncryptedKeyProcessor.java:481)
>         at
>
> org.apache.wss4j.dom.processor.EncryptedKeyProcessor.handleToken(EncryptedKeyProcessor.java:199)
>         at
>
> org.apache.wss4j.dom.processor.EncryptedKeyProcessor.handleToken(EncryptedKeyProcessor.java:76)
>         at
>
> org.apache.wss4j.dom.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:429)
>         at
>
> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessageInternal(WSS4JInInterceptor.java:280)
>         ... 50 more
> Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 13;
> The prefix "soap" for element "soap:Fault" is not bound.
>         at
>
> com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
>         at
>
> com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:347)
>         at
> javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
>         at
>
> org.apache.xml.security.utils.XMLUtils$DocumentBuilderProxy.parse(XMLUtils.java:1114)
>         at
>
> org.apache.wss4j.dom.util.EncryptionUtils.decryptXopAttachment(EncryptionUtils.java:366)
>         at
>
> org.apache.wss4j.dom.util.EncryptionUtils.decryptEncryptedData(EncryptionUtils.java:179)
>
> The raw response server message (before encryption and attachment), that
> the
> client cannot parse, is:
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Header>
>   </soap:Header>
>   <soap:Body>
>     <soap:Fault>
>       <faultcode>soap:Server</faultcode>
>       <faultstring>Error</faultstring>
>       <detail>
>       </detail>
>     </soap:Fault>
>   </soap:Body>
> </soap:Envelope>
>
> I guess, that the encrypted body is attached read and DOM parsed seperatly
> without namespace information, cause the "soap" namespace is declared in
> the
> envelope.
>
> BTW, the good out messsage works, it just not working for the fault
> messages.
>
> Is this a bug of cxf and how could I fixe it on the client side?
>
> Versions:
> cxf-core 3.1.3
> cxr-rt-ws-security 3.1.3
> wss4j 2.1.2
> cxr-rt-ws-policy 3.1.3
>
>
>
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/WSS-Client-soap-fault-namespace-problem-tp5761485.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>



-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com