Hi All, I have developed an Axis2-1.3 client (with Rampart 1.3, using an xmlbeans proxy) that calls methods on a secured .NET web service service. I can successfully communicate with the .NET service, however when the .NET server returns a valid fault message the xmlbeans proxy client never receives the returned fault string; instead all the client receives is the following message: Must Understand check failed for header http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1. 0.xsd : Security
Note that in Axis2-1.2 this was not a problem; my xmlbeans proxy received the correct/expected error string. So, for example, if I call a method on the .NET web service with an invalid parameter in the request document, the .NET web service returns an informative message containing details of the problem. Below is an example of the xml response message received from the .NET server, and to me it appears to be a valid response: <?xml version='1.0' encoding='utf-8'?> <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity- utility-1.0.xsd"> <s:Header> <o:Security xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity- secext-1.0.xsd" s:mustUnderstand="1"> <u:Timestamp u:Id="_0"> <u:Created>2007-10-12T01:02:16.796Z</u:Created> <u:Expires>2007-10-12T01:07:16.796Z</u:Expires> </u:Timestamp> </o:Security> </s:Header> <s:Body> <s:Fault> <faultcode>s:UnexpectedFault</faultcode> <faultstring xml:lang="en-US">An unexpected error has occurred in the service. System.ServiceModel.FaultException`1[MyDials.Common.ServiceFaults.InvalidReq uestFault]: The dimension member 'Midlands' was included in a dimension reference for the 'Products' dimension, but is not valid. (Fault Detail is equal to MyDials.Common.ServiceFaults.InvalidRequestFault).</faultstring> </s:Fault> </s:Body> </s:Envelope> When I interact with this returned message (through the xmlbeans proxy), the error message I see is the "Must Understand check failed for header ..." rather than the value contained in the faultstring elemrnt of the returned document. The issue appears to be that the received message header contains a (valid) timestamp, as indicated above, however the Axis2 response handler never seems to to process this timestamp in the header, meaning that when the AxisEngine.checkMustUnderstand() performs the headerBlock.isProcessed() test, the result is false and so the "Must understand check failed ..." exception is thrown and my xmlbeans proxy never sees the real faultstring message. I am struggling to understand what is going wrong here ... any guidance on what to fault-find next would be greatly appreciated as after a few days looking at this I am unsure if it is a problem in returned document, or my policy.xml. Thanks, Tim Munro =================== Below is my policy.xml document: <?xml version="1.0" encoding="UTF-8"?> <wsp:Policy wsu:Id="SigOnly" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurit y-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <wsp:ExactlyOne> <wsp:All> <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:TransportToken> <wsp:Policy> <sp:HttpsToken RequireClientCertificate="false"/> </wsp:Policy> </sp:TransportToken> <sp:AlgorithmSuite> <wsp:Policy> <sp:Basic256/> </wsp:Policy> </sp:AlgorithmSuite> <sp:Layout> <wsp:Policy> <sp:Lax/> </wsp:Policy> </sp:Layout> <sp:IncludeTimestamp/> </wsp:Policy> </sp:TransportBinding> <sp:EndorsingSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/Includ eToken/AlwaysToRecipient"> <wsp:Policy> <sp:WssX509V3Token10/> </wsp:Policy> </sp:X509Token> </wsp:Policy> </sp:EndorsingSupportingTokens> <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> <wsp:Policy> <sp:MustSupportRefKeyIdentifier/> <sp:MustSupportRefIssuerSerial/> </wsp:Policy> </sp:Wss10> <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy"> <ramp:timestampTTL>300</ramp:timestampTTL> <ramp:timestampMaxSkew>300</ramp:timestampMaxSkew> <ramp:user>cc40b01503ff1f5ededf6d07c3a3c56c_81ea973b-e847-4bba-abc9-e6e69109 3f9d</ramp:user> <!-- passwordCallbackClass is set in mydials config --> <!-- <ramp:passwordCallbackClass>com.mydials.wshelper.PWCBHandler</ramp:passwordC allbackClass> --> <ramp:signatureCrypto> <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin"> <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">pkcs12</ramp:prope rty> <ramp:property name="org.apache.ws.security.crypto.merlin.file">MyDialsCert.pfx</ramp:prope rty> <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password"></ramp:propert y> </ramp:crypto> </ramp:signatureCrypto> </ramp:RampartConfig> </wsp:All> </wsp:ExactlyOne> </wsp:Policy> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]