Hi,

I am trying to invoke rampart with Axis2 and it worked so far.
If I try to first sign the message and then encrypt it, the client 
behaviour seems to be correct. 
But the service is unable to handle the message and sends the following 
exception as response:

java.lang.NullPointerException
                 java.lang.StringBuffer.<init>(StringBuffer.java:104)
 org.apache.axiom.om.impl.dom.CharacterImpl.<init>(CharacterImpl.java:43)
 org.apache.axiom.om.impl.dom.TextImpl.<init>(TextImpl.java:148)
 org.apache.axiom.om.impl.dom.AttrImpl.<init>(AttrImpl.java:82)
 
org.apache.axiom.om.impl.dom.ElementImpl.getAttributes(ElementImpl.java:1285)
 
org.apache.xml.security.c14n.implementations.Canonicalizer20010315Excl.handleAttributesSubtree(Unknown
 
Source)
 
org.apache.xml.security.c14n.implementations.CanonicalizerBase.canonicalizeSubTree(Unknown
 
Source)
 
org.apache.xml.security.c14n.implementations.CanonicalizerBase.engineCanonicalizeSubTree(Unknown
 
Source)
 
org.apache.xml.security.c14n.implementations.CanonicalizerBase.engineCanonicalize(Unknown
 
Source)
 
org.apache.xml.security.c14n.implementations.Canonicalizer20010315Excl.engineCanonicalize(Unknown
 
Source)
 
org.apache.xml.security.transforms.implementations.TransformC14NExclusive.enginePerformTransform(Unknown
 
Source)
 org.apache.xml.security.transforms.Transform.performTransform(Unknown 
Source)
 org.apache.xml.security.transforms.Transforms.performTransforms(Unknown 
Source)
 
org.apache.xml.security.signature.Reference.getContentsAfterTransformation(Unknown
 
Source)
 
org.apache.xml.security.signature.Reference.dereferenceURIandPerformTransforms(Unknown
 
Source)
 org.apache.xml.security.signature.Reference.calculateDigest(Unknown 
Source)
 org.apache.xml.security.signature.Reference.verify(Unknown Source)
 org.apache.xml.security.signature.Manifest.verifyReferences(Unknown 
Source)
 org.apache.xml.security.signature.SignedInfo.verify(Unknown Source)
 
org.apache.xml.security.signature.XMLSignature.checkSignatureValue(Unknown 
Source)
 
org.apache.xml.security.signature.XMLSignature.checkSignatureValue(Unknown 
Source)
 
org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(SignatureProcessor.java:264)
 
org.apache.ws.security.processor.SignatureProcessor.handleToken(SignatureProcessor.java:79)
 
org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:269)
 
org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:191)
 
org.apache.axis2.security.WSDoAllReceiver.processMessage(WSDoAllReceiver.java:180)
 
org.apache.axis2.security.handler.WSDoAllHandler.invoke(WSDoAllHandler.java:82)
                 org.apache.axis2.engine.Phase.invoke(Phase.java:381)
 org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:473)
 org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:445)
 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)
 org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:136)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)



Tomcat logs the following Exception:
java.lang.IllegalStateException: getOutputStream() has already been called 
for this response
        at 
org.apache.catalina.connector.Response.getWriter(Response.java:606)
        at 
org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
        at 
org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
        at 
org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
        at 
org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
        at 
org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
        at 
org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
        at 
org.apache.jsp.axis2_002dweb.Error.error500_jsp._jspService(org.apache.jsp.axis2_002dweb.Error.error500_jsp:97)
        at 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
        at 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at 
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:465)
        at 
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
        at 
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at 
org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:363)
        at 
org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:284)
        at 
org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:228)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:134)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)


My client configuration:
        <parameter name="OutflowSecurity">
          <action>
            <items>Signature Encrypt</items>
            <user>mp_client</user> 
                <encryptionUser>mp_server</encryptionUser>
            
<passwordCallbackClass>reverseTest.PWCallback</passwordCallbackClass>
            
<signaturePropFile>reverseTest1ClientSecurity.properties</signaturePropFile>
            
<encryptionPropFile>reverseTest1ClientSecurity.properties</encryptionPropFile>
          </action>
        </parameter>

My service configuration:
        <parameter name="InflowSecurity">
          <action>
          <!-- 
          not working:
          <items>UsernameToken Timestamp Signature Encrypt 
Signature</items>
          <items>UsernameToken Timestamp Signature Encrypt</items>
          <items>Signature Encrypt</items>
 
          working:
          <items>UsernameToken Timestamp Encrypt Signature</items>
 
           -->
                <items>Signature Encrypt</items>
            
<passwordCallbackClass>reverseTest.PWCallback</passwordCallbackClass>
            
<signaturePropFile>reverseTest1ServerSecurity.properties</signaturePropFile>
            
<decryptionPropFile>reverseTest1ServerSecurity.properties</decryptionPropFile>
          </action>
        </parameter>


As I commented in the service config, it is no problem if I first encrypt 
it and then sign the message.
I worked with WSS4J 1.1.0 and Axis 1.3 earlier and had no problems with 
the order of the configured items.


Regards,
Michael

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to