Not correctly processed org.apache.axis2.AxisFault when using servicemix-cxf-bc
as a web service proxy, causes java.lang.NullPointerException in
JbiInWsdl1Interceptor class
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Key: SMXCOMP-555
URL: https://issues.apache.org/activemq/browse/SMXCOMP-555
Project: ServiceMix Components
Issue Type: Bug
Components: servicemix-cxf-bc
Affects Versions: servicemix-cxf-bc-2009.01, servicemix-cxf-bc-2008.01
Environment: ServiceMix 3.3, Apache Axis2 1.4.1, Apache Rampart 1.4
Reporter: Radek Jira
Fix For: servicemix-cxf-bc-2009.02
I have implemented Axis2 web service using Rampart module for username/password
authentication. Direct request to the service implementation looks like (header
is generated by Rampart, based on WS Security Policy using Password Digest):
\\
\\
{code:xml}
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
soapenv:mustUnderstand="1">
<wsse:UsernameToken
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
wsu:Id="UsernameToken-29057219">
<wsse:Username>libuser</wsse:Username>
<wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">zjSmm202AHSBk2N6gW0bzYjJq8U=
</wsse:Password>
<wsse:Nonce>i+46ifpbSz1OHWRL57W0yg==
</wsse:Nonce>
<wsu:Created>2009-05-30T12:15:15.703Z
</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ns1:NewOperation xmlns:ns1="http://www.example.org/Axis2/">
<in>TEST</in>
</ns1:NewOperation>
</soapenv:Body>
</soapenv:Envelope>
{code}
If authentication fails AxisFault is thrown which produces this response to the
client (it works correctly):
\\
\\
{code:xml}
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<faultcode>wsse:InvalidSecurity</faultcode>
<faultstring>The security token could not be
authenticated or authorized</faultstring>
<detail />
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
{code}
If I easily add this service to the ServiceMix, fault is not propagated to the
client, because ServiceMix throws this exception (servicemix-cxf-bc doesn't
work as a proxy only and stops returning response to the client because of
exception):
\\
\\
{noformat}
java.lang.NullPointerException
at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
at org.apache.xerces.dom.CoreDocumentImpl.importNode(Unknown Source)
at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleJBIFault(JbiInWsdl1Interceptor.java:235)
at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:149)
at
org.apache.servicemix.cxfbc.interceptors.JbiInWsdl1Interceptor.handleMessage(JbiInWsdl1Interceptor.java:59)
at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
at
org.apache.servicemix.cxfbc.CxfBcProviderMessageObserver.onMessage(CxfBcProviderMessageObserver.java:137)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2029)
at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1865)
at
org.apache.servicemix.cxfbc.CxfBcProvider.process(CxfBcProvider.java:236)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
{noformat}
I tried almost all version of servicemix-cxf-bc components (2008.1, 2009.1,
last source) with no success.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.