Hi,

I am trying to sign a SOAP request (axis) using wss4j + xmlsec libraries. 
Following is my client code:
void addSignature(SOAPHeaderElement secHeader) {
                        WSSecSignature secSign = new WSSecSignature();
                        secSign.setUserInfo("1","password");
                        secSign.setSignatureAlgorithm(WSConstants.RSA);         
        
                        
secSign.setKeyIdentifierType(WSConstants.BST_DIRECT_REFERENCE);
                                                
                        WSSecHeader wssh = new WSSecHeader();
                        wssh.setMustUnderstand(true);
                        
wssh.insertSecurityHeader(secHeader.getOwnerDocument());                        
                        
                        try {                                                   
                
                                
secSign.build(secHeader.getOwnerDocument(),CryptoFactory.getInstance(),wssh);
                        } catch (WSSecurityException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }  
....

However, i am getting the following exception :

org.apache.ws.security.WSSecurityException: Signature creation failed (Cannot 
setup signature data structure)
        at 
org.apache.ws.security.message.WSSecSignature.prepare(WSSecSignature.java:323)
        at 
org.apache.ws.security.message.WSSecSignature.build(WSSecSignature.java:643)
...(others)

On debugging, i found the original exception to be:

org.apache.xml.security.exceptions.XMLSecurityException: Cannot create a 
http://www.w3.org/2000/09/xmldsig#:ds:SignatureMethod from a 
http://www.w3.org/2000/09/xmldsig#:SignatureMethod element

Can someone tell me where the problem is? 

Further, in order to do away with these errors for now i made some changes in 
xml-sec source (Some different method calls in a few classes). The above error 
went away, but now i am getting this:

org.apache.ws.security.WSSecurityException: Signature creation failed; nested 
exception is: 
        java.lang.NullPointerException
        at 
org.apache.ws.security.message.WSSecSignature.computeSignature(WSSecSignature.java:606)
        at 
org.apache.ws.security.message.WSSecSignature.build(WSSecSignature.java:668)
        at test.SecurityHandler.addSignature(SecurityHandler.java:131)
        at test.SecurityHandler.invoke(SecurityHandler.java:69)
        at 
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:121)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at 
com.bt.platform.sdk.web.messagingandpresence.MessagingAndPresenceSoapBindingStub.signon(MessagingAndPresenceSoapBindingStub.java:1893)
        at test.TestPresence.main(TestPresence.java:33)
Caused by: java.lang.NullPointerException
        at 
org.apache.ws.security.util.WSSecurityUtil.getSOAPConstants(WSSecurityUtil.java:672)
        at 
org.apache.ws.security.message.EnvelopeIdResolver.engineResolve(EnvelopeIdResolver.java:100)
        at 
org.apache.xml.security.utils.resolver.ResourceResolver.resolve(ResourceResolver.java:246)
        at 
org.apache.xml.security.signature.Reference.getContentsBeforeTransformation(Reference.java:405)
        at 
org.apache.xml.security.signature.Reference.dereferenceURIandPerformTransforms(Reference.java:617)
        at 
org.apache.xml.security.signature.Reference.calculateDigest(Reference.java:694)
        at 
org.apache.xml.security.signature.Reference.generateDigestValue(Reference.java:366)
        at 
org.apache.xml.security.signature.Manifest.generateDigestValues(Manifest.java:180)
        at 
org.apache.xml.security.signature.XMLSignature.sign(XMLSignature.java:491)
        at 
org.apache.ws.security.message.WSSecSignature.computeSignature(WSSecSignature.java:599)

Can someone please help me out?

Thanks,
Rohit Ranjan.

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

Reply via email to