You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fx-dev@ws.apache.org by wss4j wei <ws...@gmail.com> on 2007/03/13 05:25:22 UTC

Did not understand "MustUnderstand" header(s):{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security

Do not know how to begin or resolve this issue and looking for help.

Wrote a simple webservice program as :
*

=======================================================================================================================================

public* *class* DIIClient {

*private* *final* *static* String *NAMESPACE* = "http://ttdev.com/ss";

*public* *static* *void* main(String[] args) *throws* Exception {

Service service = *new* Service();

Call call = (Call) service.createCall();

call.setClientHandlers(*new* WSDoAllSender(),*null*);

call.setProperty(WSHandlerConstants.*ACTION*,"Signature");

call.setProperty(WSHandlerConstants.*USER*,"Apple1");

call.setProperty(WSHandlerConstants.*PW_CALLBACK_CLASS*,"
com.ttdev.SecureService.Client.PasswordProvider");

call.setProperty(WSHandlerConstants.*SIG_PROP_FILE*,"
client-provider.properties");

call.setProperty(WSHandlerConstants.*SIG_KEY_ID*,"DirectReference");

call.setProperty(WSHandlerConstants.*MUST_UNDERSTAND*,"1");

call.setTargetEndpointAddress("
http://localhost:5050/SecureService/services/SecureServiceSOAP");

call.setOperationStyle(Style.*WRAPPED*);

call.setOperationName(*new* QName(*NAMESPACE*, "SecureServiceSOAP"));

call.addParameter("s1", Constants.*XSD_STRING*, ParameterMode.*IN*);

call.addParameter("s2", Constants.*XSD_STRING*, ParameterMode.*IN*);

call.setReturnType(Constants.*XSD_STRING*);

String result = (String) call.invoke(*new* Object[] { "abc", "123" });

System.*out*.println(result);

}

}
=======================================================================================================================================
\SecureService\context\WEB-INF\classes\client-config.wsdd
<deployment
 xmlns="http://xml.apache.org/axis/wsdd/"
 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <handler name="sender" type="java:org.apache.ws.axis.security.WSDoAllSender
">
 </handler>
 <service name="SecureServiceSOAP">
  <requestFlow>
   <handler type="sender"/>
  </requestFlow>
 </service>
 <transport name="http"
  pivot="java:org.apache.axis.transport.http.HTTPSender"/>
</deployment>

=======================================================================================================================================
\SecureService\context\WEB-INF\classes\com\ttdev\SecureService\deploy.wsdd
<deployment
    xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <handler name="receiver" type ="java:
org.apache.ws.axis.security.WSDoAllReceiver">
  <parameter name="action" value="Signature">
  <parameter name="signaturePropFile" value="service-provider.properties">
  </handler">
  <service name="SecureServiceSOAP" provider="java:RPC" style="wrapped"
use="literal">
      <parameter name="wsdlTargetNamespace" value="http://ttdev.com/ss"/>
      <parameter name="wsdlServiceElement" value="SecureService"/>
      <parameter name="schemaUnqualified" value="http://ttdev.com/ss"/>
      <parameter name="wsdlServicePort" value="SecureServiceSOAP"/>
      <parameter name="className" value="
com.ttdev.SecureService.SecureServiceSOAPImpl"/>
      <parameter name="wsdlPortType" value="SecureService"/>
      <parameter name="typeMappingVersion" value="1.2"/>
      <operation name="concat" qname="operNS:concat" xmlns:operNS="
http://ttdev.com/ss" returnQName="concatResponse" returnType="rtns:string"
xmlns:rtns="http://www.w3.org/2001/XMLSchema" soapAction="
http://ttdev.com/ss/NewOperation" >
        <parameter qname="s1" type="tns:string" xmlns:tns="
http://www.w3.org/2001/XMLSchema"/>
        <parameter qname="s2" type="tns:string" xmlns:tns="
http://www.w3.org/2001/XMLSchema"/>
      </operation>
      <parameter name="allowedMethods" value="concat"/>
  <requestFlow>
   <handler type="receiver"/>
  </requestFlow>
  </service>
</deployment>
=======================================================================================================================================
Request Information :

POST http://localhost:5050/SecureService/services/SecureServiceSOAP HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.4
Host: localhost:5050
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: ""
Content-Length: 3107

<?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="
http://www.w3.org/2001/XMLSchema" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Header>
         <wsse:Security xmlns:wsse="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
soapenv:mustUnderstand="1">
            <wsse:BinarySecurityToken xmlns:wsu="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
EncodingType="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
ValueType="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"
wsu:Id="CertId-900992">MIICODCCAaECAQMwDQYJKoZIhvcNAQEFBQAwVDELMAkGA1UEBhMCVVMxEjAQBgNVBAgTCVNhbiBSYW1vbjESMBAGA1UEBxMJU2FuIFJhbW9uMRAwDgYDVQQKEwdUZXN0IENBMQswCQYDVQQDEwJDQTAeFw0wNzAyMTEyMjU0MTNaFw0wOTAyMTAyMjU0MTNaMHUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTESMBAGA1UEBxMJU2FuIFJhbW9uMRQwEgYDVQQKEwtXZWxsZW4xIE9yZzEZMBcGA1UECxMQV2VsbGVuMSBPcmcgVW5pdDEUMBIGA1UEAxMLV2VsbGVuMSBMYXUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKIAsawDqN6/IYe7sxOKMXxXMDSh06gGgRYVS+nocEQgBxUoAGn2xY7eUQRfAVb2ouQhuNIoOy03dmTaRfDLVCaHcLr9WS0bL7Zfsz5/KcT/ae0boQ9rKS2Ggwl6i6zxm+OAyOPcHN3yNriWxLG2HmZYypCE6gZxgOGMvTnldGeXAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAR/0p+hOjiVy+/w9ShobzHB0Hpw/632vsD6Tz3jyHpUY4qox8L8iy7itulHcU/Ub1hVAWnBrK+QPsX98FJfkgB3iGZzLQqfhR4deWIV9rYEyxiR8fg9Cp2V48Xd5ZBoAruX22alFp4Huqa6U0+SGSIkVLsIqAkTGMAIqguFARlm4=</wsse:BinarySecurityToken>
            <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
Id="Signature-27682895">
               <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:Reference URI="#id-22945909">
                     <ds:Transforms>
                        <ds:Transform Algorithm="
http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform>
                     </ds:Transforms>
                     <ds:DigestMethod Algorithm="
http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod>

<ds:DigestValue>WaZfZCfS6iCxSK56lL3Cs8xGl3A=</ds:DigestValue>
                  </ds:Reference>
               </ds:SignedInfo>

<ds:SignatureValue>MKAoy3cLUnOH8DubIlQ45RqmVMRiMjGbZn6bOHl5xoOHOOFxFnSz2q89GclDLzD6jFRDY7uBIAROkN0lBm69EyP+87OP+3AXPWxQb9DtAXo8UHR8HhjIkTMWmUu7UrOze6L0kWEOxFSZIOfibnmivFPWs7NzmFwdsNJ8ZdPsJTY=</ds:SignatureValue>
               <ds:KeyInfo Id="KeyId-3808966">
                  <wsse:SecurityTokenReference xmlns:wsu="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
wsu:Id="STRId-18016247">
                     <wsse:Reference URI="#CertId-900992" ValueType="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"></wsse:Reference
>
                  </wsse:SecurityTokenReference>
               </ds:KeyInfo>
            </ds:Signature>
         </wsse:Security>
      </soapenv:Header>
      <soapenv:Body xmlns:wsu="
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
wsu:Id="id-22945909">
         <SecureServiceSOAP xmlns="http://ttdev.com/ss">
            <s1 xmlns="" xsi:type="xsd:string">abc</s1>
            <s2 xmlns="" xsi:type="xsd:string">123</s2>
         </SecureServiceSOAP>
      </soapenv:Body>
   </soapenv:Envelope>

=======================================================================================================================================
Response Information :

HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=utf-8
Date: Tue, 13 Mar 2007 04:16:15 GMT
Connection: close

<?xml version="1.0" encoding="utf-8"?>
   <soapenv:Envelope xmlns:soapenv="
http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="
http://www.w3.org/2001/XMLSchema" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Body>
         <soapenv:Fault>
            <faultcode>soapenv:MustUnderstand</faultcode>
            <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
</faultstring>
            <detail>
               <ns1:hostname xmlns:ns1="
http://xml.apache.org/axis/">WLAU-LAP2</ns1:hostname>
            </detail>
         </soapenv:Fault>
      </soapenv:Body>
   </soapenv:Envelope>

=======================================================================================================================================

Call Stack :

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/}hostname:WLAU-LAP2

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.message.SOAPFaultBuilder.createFault(*
SOAPFaultBuilder.java:222*)

at org.apache.axis.message.SOAPFaultBuilder.endElement(*
SOAPFaultBuilder.java:129*)

at org.apache.axis.encoding.DeserializationContext.endElement(*
DeserializationContext.java:1087*)

at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)

at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)

at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)

at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)

at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)

at javax.xml.parsers.SAXParser.parse(*SAXParser.java:375*)

at org.apache.axis.encoding.DeserializationContext.parse(*
DeserializationContext.java:227*)

at org.apache.axis.SOAPPart.getAsSOAPEnvelope(*SOAPPart.java:696*)

at org.apache.axis.Message.getSOAPEnvelope(*Message.java:435*)

at org.apache.axis.transport.http.HTTPSender.readFromSocket(*HTTPSender.java
:796*)

at org.apache.axis.transport.http.HTTPSender.invoke(*HTTPSender.java:144*)

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:165*)

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.ttdev.SecureService.Client.DIIClient.main(*DIIClient.java:65*)

AW: Did not understand "MustUnderstand" header(s):{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security

Posted by "Dittmann, Werner" <we...@siemens.com>.
Just an idea here: I had a similar problem (once upon a time -:) ).
As far as I can remember it was because some probelms in the
deployment handling. Can you try to define the WsDoAllReceiver handler
directly in the request flow of the service? That is: not indirectly using
a handler type definition first and then using it in the request flow by
specifying its name only. 
 
Regards,
Werner
 


________________________________

	Von: wss4j wei [mailto:wss4j.wei@gmail.com] 
	Gesendet: Dienstag, 13. März 2007 05:25
	An: wss4j-dev@ws.apache.org
	Betreff: Did not understand "MustUnderstand" header(s):{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security
	
	
	Do not know how to begin or resolve this issue and looking for help.
	 
	Wrote a simple webservice program as :
	=======================================================================================================================================

	public

	class DIIClient { 

	

	private final static String NAMESPACE = "http://ttdev.com/ss" ; 

	

	

	public static void main(String[] args) throws Exception { 

	Service service = 

	new Service(); 

	Call call = (Call) service.createCall();

	

	call.setClientHandlers(

	new WSDoAllSender(),null); 

	call.setProperty(WSHandlerConstants.

	ACTION,"Signature"); 

	call.setProperty(WSHandlerConstants.

	USER,"Apple1"); 

	call.setProperty(WSHandlerConstants.

	PW_CALLBACK_CLASS,"com.ttdev.SecureService.Client.PasswordProvider "); 

	call.setProperty(WSHandlerConstants.

	SIG_PROP_FILE,"client-provider.properties" ); 

	call.setProperty(WSHandlerConstants.

	SIG_KEY_ID,"DirectReference" ); 

	call.setProperty(WSHandlerConstants.

	MUST_UNDERSTAND,"1"); 

	

	call.setTargetEndpointAddress("http://localhost:5050/SecureService/services/SecureServiceSOAP ");

	call.setOperationStyle(Style.WRAPPED);

	call.setOperationName(new QName(NAMESPACE, "SecureServiceSOAP"));

	call.addParameter("s1", Constants.XSD_STRING, ParameterMode. IN);

	call.addParameter("s2", Constants.XSD_STRING, ParameterMode. IN);

	call.setReturnType(Constants.XSD_STRING);

	String result = (String) call.invoke(new Object[] { "abc", "123" });

	System.out.println(result);

	}

	}

	=======================================================================================================================================
	\SecureService\context\WEB-INF\classes\client-config.wsdd
	<deployment
	 xmlns="http://xml.apache.org/axis/wsdd/"
	 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java ">
	 <handler name="sender" type="java:org.apache.ws.axis.security.WSDoAllSender">
	 </handler>
	 <service name="SecureServiceSOAP">
	  <requestFlow> 
	   <handler type="sender"/>
	  </requestFlow>
	 </service>
	 <transport name="http"
	  pivot="java:org.apache.axis.transport.http.HTTPSender"/>
	</deployment> 
	 
	=======================================================================================================================================
	\SecureService\context\WEB-INF\classes\com\ttdev\SecureService\deploy.wsdd
	<deployment
	    xmlns="http://xml.apache.org/axis/wsdd/"
	    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java ">
	  <handler name="receiver" type ="java:org.apache.ws.axis.security.WSDoAllReceiver">
	  <parameter name="action" value="Signature">
	  <parameter name="signaturePropFile" value=" service-provider.properties">
	  </handler">
	  <service name="SecureServiceSOAP" provider="java:RPC" style="wrapped" use="literal">
	      <parameter name="wsdlTargetNamespace" value=" http://ttdev.com/ss"/>
	      <parameter name="wsdlServiceElement" value="SecureService"/>
	      <parameter name="schemaUnqualified" value=" http://ttdev.com/ss"/>
	      <parameter name="wsdlServicePort" value="SecureServiceSOAP"/>
	      <parameter name="className" value=" com.ttdev.SecureService.SecureServiceSOAPImpl"/>
	      <parameter name="wsdlPortType" value="SecureService"/>
	      <parameter name="typeMappingVersion" value="1.2 "/>
	      <operation name="concat" qname="operNS:concat" xmlns:operNS="http://ttdev.com/ss" returnQName="concatResponse" returnType="rtns:string" xmlns:rtns=" http://www.w3.org/2001/XMLSchema" soapAction="http://ttdev.com/ss/NewOperation" >
	        <parameter qname="s1" type="tns:string" xmlns:tns=" http://www.w3.org/2001/XMLSchema"/>
	        <parameter qname="s2" type="tns:string" xmlns:tns=" http://www.w3.org/2001/XMLSchema"/ <http://www.w3.org/2001/XMLSchema"/> >
	      </operation>
	      <parameter name="allowedMethods" value="concat"/>
	  <requestFlow>
	   <handler type="receiver"/> 
	  </requestFlow>
	  </service>
	</deployment>
	=======================================================================================================================================
	Request Information :

	POST http://localhost:5050/SecureService/services/SecureServiceSOAP HTTP/1.0
	Content-Type: text/xml; charset=utf-8
	Accept: application/soap+xml, application/dime, multipart/related, text/* 
	User-Agent: Axis/1.4
	Host: localhost:5050
	Cache-Control: no-cache
	Pragma: no-cache
	SOAPAction: ""
	Content-Length: 3107

	<?xml version="1.0" encoding="UTF-8"?>
	   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	      <soapenv:Header> 
	         <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd " soapenv:mustUnderstand="1">
	            <wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd " EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary " ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="CertId-900992">MIICODCCAaECAQMwDQYJKoZIhvcNAQEFBQAwVDELMAkGA1UEBhMCVVMxEjAQBgNVBAgTCVNhbiBSYW1vbjESMBAGA1UEBxMJU2FuIFJhbW9uMRAwDgYDVQQKEwdUZXN0IENBMQswCQYDVQQDEwJDQTAeFw0wNzAyMTEyMjU0MTNaFw0wOTAyMTAyMjU0MTNaMHUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTESMBAGA1UEBxMJU2FuIFJhbW9uMRQwEgYDVQQKEwtXZWxsZW4xIE9yZzEZMBcGA1UECxMQV2VsbGVuMSBPcmcgVW5pdDEUMBIGA1UEAxMLV2VsbGVuMSBMYXUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKIAsawDqN6/IYe7sxOKMXxXMDSh06gGgRYVS+nocEQgBxUoAGn2xY7eUQRfAVb2ouQhuNIoOy03dmTaRfDLVCaHcLr9WS0bL7Zfsz5/KcT/ae0boQ9rKS2Ggwl6i6zxm+OAyOPcHN3yNriWxLG2HmZYypCE6gZxgOGMvTnldGeXAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAR/0p+hOjiVy+/w9ShobzHB0Hpw/632vsD6Tz3jyHpUY4qox8L8iy7itulHcU/Ub1hVAWnBrK+QPsX98FJfkgB3iGZzLQqfhR4deWIV9rYEyxiR8fg9Cp2V48Xd5ZBoAruX22alFp4Huqa6U0+SGSIkVLsIqAkTGMAIqguFARlm4=</wsse:BinarySecurityToken> 
	            <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-27682895">
	               <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:Reference URI="#id-22945909"> 
	                     <ds:Transforms>
	                        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform >
	                     </ds:Transforms>
	                     <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod >
	                     <ds:DigestValue>WaZfZCfS6iCxSK56lL3Cs8xGl3A=</ds:DigestValue>
	                  </ds:Reference>
	               </ds:SignedInfo>
	               <ds:SignatureValue>MKAoy3cLUnOH8DubIlQ45RqmVMRiMjGbZn6bOHl5xoOHOOFxFnSz2q89GclDLzD6jFRDY7uBIAROkN0lBm69EyP+87OP+3AXPWxQb9DtAXo8UHR8HhjIkTMWmUu7UrOze6L0kWEOxFSZIOfibnmivFPWs7NzmFwdsNJ8ZdPsJTY=</ds:SignatureValue> 
	               <ds:KeyInfo Id="KeyId-3808966">
	                  <wsse:SecurityTokenReference xmlns:wsu=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd <http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd> " wsu:Id="STRId-18016247">
	                     <wsse:Reference URI="#CertId-900992" ValueType=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"></wsse:Reference >
	                  </wsse:SecurityTokenReference>
	               </ds:KeyInfo>
	            </ds:Signature>
	         </wsse:Security>
	      </soapenv:Header>
	      <soapenv:Body xmlns:wsu=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-22945909">
	         <SecureServiceSOAP xmlns="http://ttdev.com/ss">
	            <s1 xmlns="" xsi:type="xsd:string">abc</s1>
	            <s2 xmlns="" xsi:type="xsd:string">123</s2> 
	         </SecureServiceSOAP>
	      </soapenv:Body>
	   </soapenv:Envelope>

	=======================================================================================================================================
	Response Information :

	HTTP/1.1 500 Internal Server Error
	Server: Apache-Coyote/1.1
	Content-Type: text/xml;charset=utf-8
	Date: Tue, 13 Mar 2007 04:16:15 GMT
	Connection: close

	<?xml version="1.0" encoding="utf-8"?>
	   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	      <soapenv:Body> 
	         <soapenv:Fault>
	            <faultcode>soapenv:MustUnderstand</faultcode>
	            <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 <http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security> </faultstring>
	            <detail>
	               <ns1:hostname xmlns:ns1=" http://xml.apache.org/axis/">WLAU-LAP2</ns1:hostname <http://xml.apache.org/axis/">WLAU-LAP2</ns1:hostname> >
	            </detail>
	         </soapenv:Fault>
	      </soapenv:Body>
	   </soapenv:Envelope>

	=======================================================================================================================================
	 
	Call Stack :
	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/}hostname:WLAU-LAP2

	

	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.message.SOAPFaultBuilder.createFault(

	SOAPFaultBuilder.java:222) 

	at org.apache.axis.message.SOAPFaultBuilder.endElement(

	SOAPFaultBuilder.java:129) 

	at org.apache.axis.encoding.DeserializationContext.endElement(

	DeserializationContext.java:1087) 

	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)

	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)

	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)

	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)

	at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)

	at javax.xml.parsers.SAXParser.parse(

	SAXParser.java:375) 

	at org.apache.axis.encoding.DeserializationContext.parse(

	DeserializationContext.java:227) 

	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(

	SOAPPart.java:696) 

	at org.apache.axis.Message.getSOAPEnvelope(

	Message.java:435) 

	at org.apache.axis.transport.http.HTTPSender.readFromSocket(

	HTTPSender.java:796) 

	at org.apache.axis.transport.http.HTTPSender.invoke(

	HTTPSender.java:144) 

	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:165) 

	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.ttdev.SecureService.Client.DIIClient.main(

	DIIClient.java:65)


AW: Did not understand "MustUnderstand" header(s):{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security

Posted by "Dittmann, Werner" <we...@siemens.com>.
Just an idea here: I had a similar problem (once upon a time -:) ).
As far as I can remember it was because some probelms in the
deployment handling. Can you try to define the WsDoAllReceiver handler
directly in the request flow of the service? That is: not indirectly using
a handler type definition first and then using it in the request flow by
specifying its name only. 
 
Regards,
Werner
 


________________________________

	Von: wss4j wei [mailto:wss4j.wei@gmail.com] 
	Gesendet: Dienstag, 13. März 2007 05:25
	An: wss4j-dev@ws.apache.org
	Betreff: Did not understand "MustUnderstand" header(s):{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security
	
	
	Do not know how to begin or resolve this issue and looking for help.
	 
	Wrote a simple webservice program as :
	=======================================================================================================================================

	public

	class DIIClient { 

	

	private final static String NAMESPACE = "http://ttdev.com/ss" ; 

	

	

	public static void main(String[] args) throws Exception { 

	Service service = 

	new Service(); 

	Call call = (Call) service.createCall();

	

	call.setClientHandlers(

	new WSDoAllSender(),null); 

	call.setProperty(WSHandlerConstants.

	ACTION,"Signature"); 

	call.setProperty(WSHandlerConstants.

	USER,"Apple1"); 

	call.setProperty(WSHandlerConstants.

	PW_CALLBACK_CLASS,"com.ttdev.SecureService.Client.PasswordProvider "); 

	call.setProperty(WSHandlerConstants.

	SIG_PROP_FILE,"client-provider.properties" ); 

	call.setProperty(WSHandlerConstants.

	SIG_KEY_ID,"DirectReference" ); 

	call.setProperty(WSHandlerConstants.

	MUST_UNDERSTAND,"1"); 

	

	call.setTargetEndpointAddress("http://localhost:5050/SecureService/services/SecureServiceSOAP ");

	call.setOperationStyle(Style.WRAPPED);

	call.setOperationName(new QName(NAMESPACE, "SecureServiceSOAP"));

	call.addParameter("s1", Constants.XSD_STRING, ParameterMode. IN);

	call.addParameter("s2", Constants.XSD_STRING, ParameterMode. IN);

	call.setReturnType(Constants.XSD_STRING);

	String result = (String) call.invoke(new Object[] { "abc", "123" });

	System.out.println(result);

	}

	}

	=======================================================================================================================================
	\SecureService\context\WEB-INF\classes\client-config.wsdd
	<deployment
	 xmlns="http://xml.apache.org/axis/wsdd/"
	 xmlns:java="http://xml.apache.org/axis/wsdd/providers/java ">
	 <handler name="sender" type="java:org.apache.ws.axis.security.WSDoAllSender">
	 </handler>
	 <service name="SecureServiceSOAP">
	  <requestFlow> 
	   <handler type="sender"/>
	  </requestFlow>
	 </service>
	 <transport name="http"
	  pivot="java:org.apache.axis.transport.http.HTTPSender"/>
	</deployment> 
	 
	=======================================================================================================================================
	\SecureService\context\WEB-INF\classes\com\ttdev\SecureService\deploy.wsdd
	<deployment
	    xmlns="http://xml.apache.org/axis/wsdd/"
	    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java ">
	  <handler name="receiver" type ="java:org.apache.ws.axis.security.WSDoAllReceiver">
	  <parameter name="action" value="Signature">
	  <parameter name="signaturePropFile" value=" service-provider.properties">
	  </handler">
	  <service name="SecureServiceSOAP" provider="java:RPC" style="wrapped" use="literal">
	      <parameter name="wsdlTargetNamespace" value=" http://ttdev.com/ss"/>
	      <parameter name="wsdlServiceElement" value="SecureService"/>
	      <parameter name="schemaUnqualified" value=" http://ttdev.com/ss"/>
	      <parameter name="wsdlServicePort" value="SecureServiceSOAP"/>
	      <parameter name="className" value=" com.ttdev.SecureService.SecureServiceSOAPImpl"/>
	      <parameter name="wsdlPortType" value="SecureService"/>
	      <parameter name="typeMappingVersion" value="1.2 "/>
	      <operation name="concat" qname="operNS:concat" xmlns:operNS="http://ttdev.com/ss" returnQName="concatResponse" returnType="rtns:string" xmlns:rtns=" http://www.w3.org/2001/XMLSchema" soapAction="http://ttdev.com/ss/NewOperation" >
	        <parameter qname="s1" type="tns:string" xmlns:tns=" http://www.w3.org/2001/XMLSchema"/>
	        <parameter qname="s2" type="tns:string" xmlns:tns=" http://www.w3.org/2001/XMLSchema"/ <http://www.w3.org/2001/XMLSchema"/> >
	      </operation>
	      <parameter name="allowedMethods" value="concat"/>
	  <requestFlow>
	   <handler type="receiver"/> 
	  </requestFlow>
	  </service>
	</deployment>
	=======================================================================================================================================
	Request Information :

	POST http://localhost:5050/SecureService/services/SecureServiceSOAP HTTP/1.0
	Content-Type: text/xml; charset=utf-8
	Accept: application/soap+xml, application/dime, multipart/related, text/* 
	User-Agent: Axis/1.4
	Host: localhost:5050
	Cache-Control: no-cache
	Pragma: no-cache
	SOAPAction: ""
	Content-Length: 3107

	<?xml version="1.0" encoding="UTF-8"?>
	   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	      <soapenv:Header> 
	         <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd " soapenv:mustUnderstand="1">
	            <wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd " EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary " ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="CertId-900992">MIICODCCAaECAQMwDQYJKoZIhvcNAQEFBQAwVDELMAkGA1UEBhMCVVMxEjAQBgNVBAgTCVNhbiBSYW1vbjESMBAGA1UEBxMJU2FuIFJhbW9uMRAwDgYDVQQKEwdUZXN0IENBMQswCQYDVQQDEwJDQTAeFw0wNzAyMTEyMjU0MTNaFw0wOTAyMTAyMjU0MTNaMHUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTESMBAGA1UEBxMJU2FuIFJhbW9uMRQwEgYDVQQKEwtXZWxsZW4xIE9yZzEZMBcGA1UECxMQV2VsbGVuMSBPcmcgVW5pdDEUMBIGA1UEAxMLV2VsbGVuMSBMYXUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKIAsawDqN6/IYe7sxOKMXxXMDSh06gGgRYVS+nocEQgBxUoAGn2xY7eUQRfAVb2ouQhuNIoOy03dmTaRfDLVCaHcLr9WS0bL7Zfsz5/KcT/ae0boQ9rKS2Ggwl6i6zxm+OAyOPcHN3yNriWxLG2HmZYypCE6gZxgOGMvTnldGeXAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAR/0p+hOjiVy+/w9ShobzHB0Hpw/632vsD6Tz3jyHpUY4qox8L8iy7itulHcU/Ub1hVAWnBrK+QPsX98FJfkgB3iGZzLQqfhR4deWIV9rYEyxiR8fg9Cp2V48Xd5ZBoAruX22alFp4Huqa6U0+SGSIkVLsIqAkTGMAIqguFARlm4=</wsse:BinarySecurityToken> 
	            <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-27682895">
	               <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:Reference URI="#id-22945909"> 
	                     <ds:Transforms>
	                        <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"></ds:Transform >
	                     </ds:Transforms>
	                     <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></ds:DigestMethod >
	                     <ds:DigestValue>WaZfZCfS6iCxSK56lL3Cs8xGl3A=</ds:DigestValue>
	                  </ds:Reference>
	               </ds:SignedInfo>
	               <ds:SignatureValue>MKAoy3cLUnOH8DubIlQ45RqmVMRiMjGbZn6bOHl5xoOHOOFxFnSz2q89GclDLzD6jFRDY7uBIAROkN0lBm69EyP+87OP+3AXPWxQb9DtAXo8UHR8HhjIkTMWmUu7UrOze6L0kWEOxFSZIOfibnmivFPWs7NzmFwdsNJ8ZdPsJTY=</ds:SignatureValue> 
	               <ds:KeyInfo Id="KeyId-3808966">
	                  <wsse:SecurityTokenReference xmlns:wsu=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd <http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd> " wsu:Id="STRId-18016247">
	                     <wsse:Reference URI="#CertId-900992" ValueType=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"></wsse:Reference >
	                  </wsse:SecurityTokenReference>
	               </ds:KeyInfo>
	            </ds:Signature>
	         </wsse:Security>
	      </soapenv:Header>
	      <soapenv:Body xmlns:wsu=" http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-22945909">
	         <SecureServiceSOAP xmlns="http://ttdev.com/ss">
	            <s1 xmlns="" xsi:type="xsd:string">abc</s1>
	            <s2 xmlns="" xsi:type="xsd:string">123</s2> 
	         </SecureServiceSOAP>
	      </soapenv:Body>
	   </soapenv:Envelope>

	=======================================================================================================================================
	Response Information :

	HTTP/1.1 500 Internal Server Error
	Server: Apache-Coyote/1.1
	Content-Type: text/xml;charset=utf-8
	Date: Tue, 13 Mar 2007 04:16:15 GMT
	Connection: close

	<?xml version="1.0" encoding="utf-8"?>
	   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	      <soapenv:Body> 
	         <soapenv:Fault>
	            <faultcode>soapenv:MustUnderstand</faultcode>
	            <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 <http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security> </faultstring>
	            <detail>
	               <ns1:hostname xmlns:ns1=" http://xml.apache.org/axis/">WLAU-LAP2</ns1:hostname <http://xml.apache.org/axis/">WLAU-LAP2</ns1:hostname> >
	            </detail>
	         </soapenv:Fault>
	      </soapenv:Body>
	   </soapenv:Envelope>

	=======================================================================================================================================
	 
	Call Stack :
	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/}hostname:WLAU-LAP2

	

	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.message.SOAPFaultBuilder.createFault(

	SOAPFaultBuilder.java:222) 

	at org.apache.axis.message.SOAPFaultBuilder.endElement(

	SOAPFaultBuilder.java:129) 

	at org.apache.axis.encoding.DeserializationContext.endElement(

	DeserializationContext.java:1087) 

	at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)

	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)

	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)

	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)

	at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)

	at javax.xml.parsers.SAXParser.parse(

	SAXParser.java:375) 

	at org.apache.axis.encoding.DeserializationContext.parse(

	DeserializationContext.java:227) 

	at org.apache.axis.SOAPPart.getAsSOAPEnvelope(

	SOAPPart.java:696) 

	at org.apache.axis.Message.getSOAPEnvelope(

	Message.java:435) 

	at org.apache.axis.transport.http.HTTPSender.readFromSocket(

	HTTPSender.java:796) 

	at org.apache.axis.transport.http.HTTPSender.invoke(

	HTTPSender.java:144) 

	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:165) 

	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.ttdev.SecureService.Client.DIIClient.main(

	DIIClient.java:65)