The error message indicates that the server doesn't know the client's
certificate... did you add the CA that signed the client's certificate
OR the client certificate itself to the server's keystore?



-----Original Message-----
From: Thorsten Deelmann [mailto:[email protected]] 
Sent: Sunday, December 14, 2008 4:08 PM
To: [email protected]
Subject: Axis2/Rampart Signature Validation

Hi all,

I've got the following Signature of a SOAP-Header built with Rampart:
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#";
Id="Signature-30721078">
        <ds:SignedInfo>
                <ds:CanonicalizationMethod
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                <ds:SignatureMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1"/>
                <ds:Reference URI="#Id-6935595">
                        <ds:Transforms>
                                <ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                        </ds:Transforms>
                        <ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
        
<ds:DigestValue>zo9esKQnicy3e5eQidwJBZs1c4E=</ds:DigestValue>
                </ds:Reference>
                <ds:Reference URI="#Timestamp-13983828">
                        <ds:Transforms>
                                <ds:Transform
Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                        </ds:Transforms>
                        <ds:DigestMethod
Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
        
<ds:DigestValue>jGS8NoS39F6SNr9YWjSmXmeOYAA=</ds:DigestValue>
                </ds:Reference>
        </ds:SignedInfo>
        
<ds:SignatureValue>tRIOHs2UgyJLwTj2hRh4QOeoc1I=</ds:SignatureValue>
        <ds:KeyInfo Id="KeyId-27120092">
                <wsse:SecurityTokenReference
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wsse
curity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssec
urity-utility-1.0.xsd"
wsu:Id="STRId-3996874">
                        <wsse:Reference
URI="#EncKeyId-urn:uuid:EC1EA7F6B5126BB58312292966622658"
ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1
.0#EncryptedKey"/>
                </wsse:SecurityTokenReference>
        </ds:KeyInfo>
</ds:Signature>

But when when the SignatureProcessor tries to verify it, I get the
following stack trace:
org.apache.axis2.AxisFault: The signature or decryption was invalid
        at
org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault
(RampartReceiver.java:166)
        at
org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:9
5)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:317)
        at
org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
        at
org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
        at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostReques
t(HTTPTransportUtils.java:275)
        at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
tionFilterChain.java:269)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
erChain.java:188)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
e.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
e.java:174)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:127)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:117)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
java:108)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
74)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
4)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.proc
essConnection(Http11BaseProtocol.java:665)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint
.java:528)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollow
erWorkerThread.java:81)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:689)
        at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.ws.security.WSSecurityException: The signature
or decryption was invalid
        at
org.apache.ws.security.processor.SignatureProcessor.verifyXMLSignature(S
ignatureProcessor.java:419)
        at
org.apache.ws.security.processor.SignatureProcessor.handleToken(Signatur
eProcessor.java:85)
        at
org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurity
Engine.java:311)
        at
org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurity
Engine.java:228)
        at
org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurity
Engine.java:181)
        at
org.apache.rampart.RampartEngine.process(RampartEngine.java:138)
        at
org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:9
2)
        ... 21 more

Does anyone have an idea?

If not: How can i disable the verification of the signature with
Rampart?

Thank,
Thorsten

-- 
Thorsten Deelmann

Reply via email to