glad to hear that bug has been fixed.

On Sat, Jan 7, 2012 at 12:06 PM, Andreas Veithen
<[email protected]>wrote:

> I've fixed AXIOM-408 and that solves the signature issue. Fresh
> 1.6.2-SNAPSHOT builds including that change are available here:
>
>
> https://builds.apache.org/job/axis2-1.6/lastBuild/org.apache.axis2$distribution/
>
> https://builds.apache.org/job/rampart-1.6/lastBuild/org.apache.rampart$rampart-dist/
>
> Andreas
>
> On Sat, Jan 7, 2012 at 12:20, Andreas Veithen <[email protected]>
> wrote:
> > Thanks for the code, Jaime.
> >
> > I think that I have identified the root cause of the issue:
> > https://issues.apache.org/jira/browse/AXIOM-408
> >
> > Andreas
> >
> > On Fri, Jan 6, 2012 at 00:43, Jaime Hablutzel Egoavil
> > <[email protected]> wrote:
> >> OK, the client code that generates two different signatures but
> transports
> >> the equivalent thing over the network is:
> >>
> >> DOOM enabled
> >>
> >> public class BinaryClient {
> >>
> >>     public static void main(String[] args) throws Exception {
> >>
> >>         ConfigurationContext ctx =
> >>
> ConfigurationContextFactory.createConfigurationContextFromFileSystem("D:\\software\\axis2-1.6.1\\repository",
> >> "D:\\software\\axis2-1.6.1\\samples\\mtom\\src\\client.axis2-2.xml");
> >>         RPCServiceClient client = new RPCServiceClient(ctx, null);
> >>         Options opts = new Options();
> >>         opts.setAction("ns:echo");
> >>         EndpointReference to = new EndpointReference();
> >>         to.setAddress("http://localhost:8080/anywhere";);
> >>         opts.setTo(to);
> >>
> >> opts.setProperty(org.apache.axis2.Constants.Configuration.ENABLE_MTOM,
> >> org.apache.axis2.Constants.VALUE_TRUE);
> >>         //Set the rampart parameters
> >>         opts.setProperty(WSSHandlerConstants.OUTFLOW_SECURITY,
> >> getOutflowConfiguration());
> >>         opts.setProperty(WSSHandlerConstants.INFLOW_SECURITY,
> >> getInflowConfiguration());
> >>        opts.setProperty(WSSHandlerConstants.USE_DOOM,
> >> org.apache.axis2.Constants.VALUE_TRUE);
> >>         client.setOptions(opts);
> >>
> >>         //Engage rampart
> >>         client.engageModule("rampart");
> >>
> >>         DataHandler dh = new DataHandler(new
> >> FileDataSource("D:\\software\\axis2-1.6.1\\samples\\mtom\\build.xml"));
> >>
> >>         client.invokeRobust(new QName("http://client.mtom.sample";,
> "echo"),
> >> new Object[]{dh});
> >>     }
> >>
> >>     public static Parameter getOutflowConfiguration() {
> >>         OutflowConfiguration ofc = new OutflowConfiguration();
> >>         ofc.setActionItems("Signature");
> >>         ofc.setUser("client");
> >>         ofc.setPasswordCallbackClass("sample.mtom.client.PWCBHandler");
> >>         ofc.setSignaturePropFile("client.properties");
> >>
> >> ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
> >>
> ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.ISSUER_SERIAL);
> >>         ofc.setEncryptionUser("service");
> >>         return ofc.getProperty();
> >>     }
> >>
> >>     public static Parameter getInflowConfiguration() {
> >>         InflowConfiguration ifc = new InflowConfiguration();
> >>         ifc.setActionItems("Signature");
> >>         ifc.setSignaturePropFile("client.properties");
> >>         return ifc.getProperty();
> >>     }
> >>
> >> }
> >>
> >>
> >>
> >> Without DOOM
> >>
> >> public class BinaryClient {
> >>
> >>     public static void main(String[] args) throws Exception {
> >>
> >>         ConfigurationContext ctx =
> >>
> ConfigurationContextFactory.createConfigurationContextFromFileSystem("D:\\software\\axis2-1.6.1\\repository",
> >> "D:\\software\\axis2-1.6.1\\samples\\mtom\\src\\client.axis2-2.xml");
> >>         RPCServiceClient client = new RPCServiceClient(ctx, null);
> >>         Options opts = new Options();
> >>         opts.setAction("ns:echo");
> >>         EndpointReference to = new EndpointReference();
> >>         to.setAddress("http://localhost:8080/anywhere";);
> >>         opts.setTo(to);
> >>
> >> opts.setProperty(org.apache.axis2.Constants.Configuration.ENABLE_MTOM,
> >> org.apache.axis2.Constants.VALUE_TRUE);
> >>         //Set the rampart parameters
> >>         opts.setProperty(WSSHandlerConstants.OUTFLOW_SECURITY,
> >> getOutflowConfiguration());
> >>         opts.setProperty(WSSHandlerConstants.INFLOW_SECURITY,
> >> getInflowConfiguration());
> >> //        opts.setProperty(WSSHandlerConstants.USE_DOOM,
> >> org.apache.axis2.Constants.VALUE_TRUE);
> >>         client.setOptions(opts);
> >>
> >>         //Engage rampart
> >>         client.engageModule("rampart");
> >>
> >>         DataHandler dh = new DataHandler(new
> >> FileDataSource("D:\\software\\axis2-1.6.1\\samples\\mtom\\build.xml"));
> >>
> >>         client.invokeRobust(new QName("http://client.mtom.sample";,
> "echo"),
> >> new Object[]{dh});
> >>     }
> >>
> >>     public static Parameter getOutflowConfiguration() {
> >>         OutflowConfiguration ofc = new OutflowConfiguration();
> >>         ofc.setActionItems("Signature");
> >>         ofc.setUser("client");
> >>         ofc.setPasswordCallbackClass("sample.mtom.client.PWCBHandler");
> >>         ofc.setSignaturePropFile("client.properties");
> >>
> >> ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
> >>
> ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.ISSUER_SERIAL);
> >>         ofc.setEncryptionUser("service");
> >>         return ofc.getProperty();
> >>     }
> >>
> >>     public static Parameter getInflowConfiguration() {
> >>         InflowConfiguration ifc = new InflowConfiguration();
> >>         ifc.setActionItems("Signature");
> >>         ifc.setSignaturePropFile("client.properties");
> >>         return ifc.getProperty();
> >>     }
> >>
> >> }
> >>
> >>
> >> And given that the server after canonicalization will only expect one
> type
> >> of signature it fails.
> >>
> >>
> >>
> >>
> >> On Thu, Dec 29, 2011 at 1:26 PM, Andreas Veithen <
> [email protected]>
> >> wrote:
> >>>
> >>> Can you sent use the code that produces the message causing the
> >>> problems, including everything you do to configure Rampart? That
> >>> should allow us to reproduce the problem.
> >>>
> >>> Andreas
> >>>
> >>> On Thu, Dec 29, 2011 at 17:16, Jaime Hablutzel Egoavil
> >>> <[email protected]> wrote:
> >>> > Axis 1.6.1, rampart 1.6.1, axiom 1.2.12
> >>> > By the way I discovered that this problem only arises when using
> >>> >
> >>> > client.invokeRobust(new QName("http://client.mtom.sample";, "echo"),
> new
> >>> > Object[]{dh});
> >>> >
> >>> > And not with
> >>> >
> >>> >  client.sendReceive(elem)
> >>> >
> >>> > And I'm looking that the first one creates
> >>> >
> >>> > <soapenv:Body
> >>> >
> >>> > xmlns:wsu="
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> "
> >>> > wsu:Id="id-2"><echo xmlns="http://client.mtom.sample";><arg0
> >>> > xmlns=""><xop:Include xmlns:xop="
> http://www.w3.org/2004/08/xop/include";
> >>> > href="
> cid:[email protected]"
> >>> > /></arg0></echo></soapenv:Body>
> >>> >
> >>> > And the second one:
> >>> >
> >>> > <soapenv:Body
> >>> >
> >>> > xmlns:wsu="
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> "
> >>> > wsu:Id="id-2"><ns1:echo
> >>> > xmlns:ns1="http://client.mtom.sample";><arg0><xop:Include
> >>> > xmlns:xop="http://www.w3.org/2004/08/xop/include";
> >>> > href="
> cid:[email protected]"
> >>> > /></arg0></ns1:echo></soapenv:Body>
> >>> >
> >>> >
> >>> > Anyway using the second it is working but with the first the stripped
> >>> > xmlns="" makes the signature value different so the server after
> >>> > canonicalization produces a different value and validation fails
> >>> >
> >>> > On Thu, Dec 29, 2011 at 4:31 AM, Andreas Veithen
> >>> > <[email protected]>
> >>> > wrote:
> >>> >>
> >>> >> What are the Axis2, Rampart and Axiom versions that you are using?
> >>> >>
> >>> >> Andreas
> >>> >>
> >>> >> On Tue, Dec 27, 2011 at 23:18, Jaime Hablutzel Egoavil
> >>> >> <[email protected]> wrote:
> >>> >> > Hi I want to post an apparent bug when DOOM option is activated in
> >>> >> > the
> >>> >> > client, so the SOAP message include xop:Include even when using
> >>> >> > WS-Signature
> >>> >> > and doesn't send the message in base64, this way getting
> advantage of
> >>> >> > MTOM.
> >>> >> >
> >>> >> > When using DOOM the canonicalized data to create the digest is:
> >>> >> >
> >>> >> > <soapenv:Body
> >>> >> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> >>> >> >
> >>> >> >
> >>> >> > xmlns:wsu="
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> "
> >>> >> > wsu:Id="id-2"><echo
> >>> >> >
> >>> >> >
> >>> >> > xmlns="http://client.mtom.sample
> "><arg0>b3JnLmFwYWNoZS53cy5zZWN1cml0eS5jcnlwdG8ucHJvdmlkZXI9b3JnLmFwYWNoZS53cy5zZWN1cml0eS5jb21wb25lbnRzLmNyeXB0by5NZXJsaW4Kb3JnLmFwYWNoZS53cy5zZWN1cml0eS5jcnlwdG8ubWVybGluLmtleXN0b3JlLnR5cGU9amtzCm9yZy5hcGFjaGUud3Muc2VjdXJpdHkuY3J5cHRvLm1lcmxpbi5rZXlzdG9yZS5wYXNzd29yZD1hcGFjaGUKb3JnLmFwYWNoZS53cy5zZWN1cml0eS5jcnlwdG8ubWVybGluLmZpbGU9Y2xpZW50Lmprcw==</arg0></echo></soapenv:Body>
> >>> >> >
> >>> >> > But when DOOM is disabled the data is:
> >>> >> >
> >>> >> > <soapenv:Body
> >>> >> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
> >>> >> >
> >>> >> >
> >>> >> > xmlns:wsu="
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd
> "
> >>> >> > wsu:Id="id-2"><echo xmlns="http://client.mtom.sample";><arg0
> >>> >> >
> >>> >> >
> >>> >> >
> xmlns="">b3JnLmFwYWNoZS53cy5zZWN1cml0eS5jcnlwdG8ucHJvdmlkZXI9b3JnLmFwYWNoZS53cy5zZWN1cml0eS5jb21wb25lbnRzLmNyeXB0by5NZXJsaW4Kb3JnLmFwYWNoZS53cy5zZWN1cml0eS5jcnlwdG8ubWVybGluLmtleXN0b3JlLnR5cGU9amtzCm9yZy5hcGFjaGUud3Muc2VjdXJpdHkuY3J5cHRvLm1lcmxpbi5rZXlzdG9yZS5wYXNzd29yZD1hcGFjaGUKb3JnLmFwYWNoZS53cy5zZWN1cml0eS5jcnlwdG8ubWVybGluLmZpbGU9Y2xpZW50Lmprcw==</arg0></echo></soapenv:Body>
> >>> >> >
> >>> >> > Look at the difference in red color. This causes the digest value
> to
> >>> >> > be
> >>> >> > different so the server gets confused and is unable to validate
> the
> >>> >> > signature when using DOOM in the client. A workaround seems to be
> to
> >>> >> > use
> >>> >> > only namespaced elements so the xmlns="" doesn't get generated
> never.
> >>> >> >
> >>> >> > I would like to know if someone has reached this problem when
> using
> >>> >> > MTOM
> >>> >> > +
> >>> >> > WS-Signature in axis 2.
> >>> >> >
> >>> >> > Other thing, DOOM option is not really well documented anywhere in
> >>> >> > axis2
> >>> >> > website and I just found that it was available to make real MTOM
> with
> >>> >> > WS-Signature debugging the source code for three days u.u.
> >>> >> >
> >>> >> > Good bye
> >>> >> >
> >>> >> >
> >>> >> >
> >>> >> > --
> >>> >> > Jaime Hablutzel - 9-9956-3299
> >>> >> >
> >>> >> > (tildes omitidas intencionalmente)
> >>> >>
> >>> >>
> ---------------------------------------------------------------------
> >>> >> To unsubscribe, e-mail: [email protected]
> >>> >> For additional commands, e-mail: [email protected]
> >>> >>
> >>> >
> >>> >
> >>> >
> >>> > --
> >>> > Jaime Hablutzel - 9-9956-3299
> >>> >
> >>> > (tildes omitidas intencionalmente)
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: [email protected]
> >>> For additional commands, e-mail: [email protected]
> >>>
> >>
> >>
> >>
> >> --
> >> Jaime Hablutzel - 9-9956-3299
> >>
> >> (tildes omitidas intencionalmente)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>


-- 
Jaime Hablutzel - 9-9956-3299

(tildes omitidas intencionalmente)

Reply via email to