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.

Reply via email to