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 "MustUnderstand"
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 "MustUnderstand" 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 "MustUnderstand" 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 "MustUnderstand" 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 "MustUnderstand" 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 "MustUnderstand" 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)