Hello Everybody,

I have a webservice that works with uni-directional security but when I configure it for bi-directional, I experience a "MustUnderstand" error.

Here are the specifics of my setup:

axis version: 1.4
wss4j version: 1.5
client config - client_deploy.wsdd:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
  <globalConfiguration>
    <requestFlow>
      <handler type="java:org.apache.ws.axis.security.WSDoAllSender">
        <parameter name="action" value="Timestamp Signature Encrypt"/>
        <parameter name="user" value="16c73ab6-b892-458f-abf5-2f875f74882e"/>
        <parameter name="passwordCallbackClass"
                   value="com.ameriquest.eir.client.PWCallback2"/>
        <parameter name="signaturePropFile" value="crypto.properties"/>
      </handler>
    </requestFlow>
    <responsetFlow>
      <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
        <parameter name="passwordCallbackClass"
                   value="com.ameriquest.eir.client.PWCallback2"/>
        <parameter name="action" value="Timestamp Signature Encrypt"/>
        <parameter name="signaturePropFile" value="crypto.properties"/>
      </handler>
    </responsetFlow>
  </globalConfiguration>
</deployment>

service config in server-config.wsdd (removed type-mapping):
  <service name="SearchService" type="" provider="java:RPC"
           style="rpc" use="encoded">
    <requestFlow>
      <handler type="java:org.apache.ws.axis.security.WSDoAllReceiver">
        <parameter name="passwordCallbackClass"
                   value="com.ameriquest.eir.client.PWCallback2"/>
        <parameter name="action" value="Timestamp Signature Encrypt"/>
        <parameter name="signaturePropFile" value="crypto.properties"/>
      </handler>
    </requestFlow>
    <responseFlow>
      <handler type="java:org.apache.ws.axis.security.WSDoAllSender">
        <parameter name="action" value="Timestamp Signature Encrypt"/>
        <parameter name="user" value="16c73ab6-b892-458f-abf5-2f875f74882e"/>
        <parameter name="passwordCallbackClass"
                   value="com.ameriquest.eir.client.PWCallback2"/>
        <parameter name="signaturePropFile" value="crypto.properties"/>
      </handler>
    </responseFlow>
    <parameter name="enableNamespacePrefixOptimization" value="true"/>
    <parameter name="scope" value="Request"/>
    <parameter name="className" value="com.ameriquest.eir.search.service.SearchService"/>
    <parameter name="allowedMethods" value="*"/>
    <namespace>http://service.search.eir.ameriquest.com</namespace>
  </service>

Error message:
Exception in thread "main" AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}MustUnderstand
 faultSubcode:
 faultString: Did not understand &quot;MustUnderstand&quot; header(s):{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security
 faultActor:
 faultNode:
 faultDetail:
        {http://xml.apache.org/axis/}stackTrace:
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:96)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
        at org.apache.axis.client.Call.invoke(Call.java:2748)
        at org.apache.axis.client.Call.invoke(Call.java:2424)
        at org.apache.axis.client.Call.invoke(Call.java:2347)
        at org.apache.axis.client.Call.invoke(Call.java:1804)
        at com.ameriquest.eir.search.service.SearchServiceSoapBindingStub.searchLoanDocumentDC(SearchServiceSoapBindingStub.java:646)
        at com.ameriquest.eir.client.SearchClient.main(SearchClient.java:28)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)

        {http://xml.apache.org/axis/}hostname:Cs04-107-A

Did not understand "MustUnderstand" header(s):{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security
        at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:96)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
        at org.apache.axis.client.Call.invoke(Call.java:2748)
        at org.apache.axis.client.Call.invoke(Call.java:2424)
        at org.apache.axis.client.Call.invoke(Call.java:2347)
        at org.apache.axis.client.Call.invoke(Call.java:1804)
        at com.ameriquest.eir.search.service.SearchServiceSoapBindingStub.searchLoanDocumentDC(SearchServiceSoapBindingStub.java:646)
        at com.ameriquest.eir.client.SearchClient.main(SearchClient.java:28)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)

I've searched through the mailing list and saw similar issues.  This seem to be an issue on the handling of the response in the client side.  I will do some more research on this by examining and stepping through the code.  In the mean time, any insight on this matter from the wss4j-dev list would be greatly appreciated.


Thanks,
Ed




The information in this email, and any attachments, may contain
confidential information and is intended solely for the attention
and use of the named addressee(s). It must not be disclosed to any
person(s) without authorization. If you are not the intended
recipient, or a person responsible for delivering it to the
intended recipient, you are not authorized to, and must not,
disclose, copy, distribute, or retain this message or any part of
it. If you have received this communication in error, please notify
the sender immediately.

Reply via email to