Hi Colm,

thanks for having a look into this!
Yes, the xml example is what gets sent across the wire!
However, I'm not even touching the SOAP document in my handler (which is ahead of the WSDoAllSender in the client's handler chain). I'm just setting the wss4j parameters dynamically (on the Axis MessageContext mc):

entry ="alias"
action="Signature"

mc.setProperty(WSHandlerConstants.SIG_PROP_FILE, "my.properties"); mc.setProperty(WSHandlerConstants.SIG_KEY_ID, "DirectReference"); mc.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, "myPasswordCallbackHandler");
           mc.setProperty(WSHandlerConstants.SIGNATURE_USER, entry);
           mc.setProperty(WSHandlerConstants.USER, entry);
           mc.setProperty(WSHandlerConstants.ACTION, action);


And this is the wsdd file, which does work well:

<?xml version="1.0" encoding="UTF-8"?>
<deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/";
   xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";
   xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance";>
<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<globalConfiguration>
<requestFlow>
 <handler type="java:org.apache.ws.axis.security.WSDoAllSender" >
   <parameter name="signatureUser" value="alias"/>
   <parameter name="user" value="alias"/>
<parameter name="passwordCallbackClass" value="myPasswordCallbackHandler"/>
   <parameter name="action" value="Signature"/>
   <parameter name="signaturePropFile" value="my.properties" />
   <parameter name="signatureKeyIdentifier" value="DirectReference" />
 </handler>
</requestFlow>
</globalConfiguration>
</deployment>

Bauer


Colm O hEigeartaigh schrieb:
Hi Bauer,

Yes, this is the right list for questions about wss4j.
Are the XML blobs you posted what gets sent across the wire? Both should
be perfectly valid. You're correct in saying that the second one
conforms to the c14n standard, but XML Security will just transform the
first example to the correct form when c14n'ing at the receiving end.

It sounds like a problem with the Axis SAAJ implementation...it's
extremely buggy. How are you constructing the DOM Document in your
handler? Can you attach the code of your custom handler?

Colm.

-----Original Message-----
From: Bauer Horscht [mailto:[email protected]] Sent: 01 September 2009 17:17
To: [email protected]
Subject: Canonicalization / C14N problem setting WSDoAllSender
properties programmatically

Hi,

I want to use the signature action of the WSDoAllSender handler for my WS client. This works fine, as long as I use a wsdd file and load it with FileProvider into the AxisClient.

But I want it to work using a SimpleProvider with a custom handler set before WSDoAllSender. This custom handler prepares the MessageContext for the WSDoAllSender (such as mc.setProperty(WSHandlerConstants.SIGNATURE_USER, "Bob") and WSDoAllSender even finishes without an Exception

However, now the server responds with a "The signature or decryption was

invalid... ".

I believe, the reason has something to do with c14n, since the messages differ by their empty-elements, as shown in these extracts of the crucial SignedInfo element:

FileProvider:
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"; /> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"; />
.....
</ds:SignedInfo>

SimpleProvider:
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#";>
         </ds:CanonicalizationMethod>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1";>
         </ds:SignatureMethod>
.....
</ds:SignedInfo>

Any idea why this happens?
I mean, isn't the second one the "correct one" in terms of complying to the c14n standard?
Anyway, only the first one works.

Thanks
Bauer Horscht

PS: Is this the correct mail list? Didn't find a wss4j user list


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to