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]