[ 
https://issues.apache.org/jira/browse/CXF-3240?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12980166#action_12980166
 ] 

Glen Mazza commented on CXF-3240:
---------------------------------

Your question is really much better placed on the CXF-User's list, which far 
more people read and can help out on.  

What I recommend is changing the soap:mustUnderstand="1" to 
soap:mustUnderstand="0" and see if the SOAP call will work that way(*); also to 
find out from your web service provider (WSP) whether they will accept 
soap:mustUnderstand="1".  I was on a project once where the WSP sloppily 
wouldn't accept mustUnderstand="1" (they saw it as a performance hit, if I 
understand correctly, but it's really useful IMO as a safety check) and so we 
couldn't use it.  You can do this test my using soapUI or modifying the header 
to remove this attribute (providing removing the attribute will not break any 
signatures) by using Interceptors or Handlers[1].  

(*) if it *does* work if you remove mustUnderstand, also confirm that the SOAP 
call will fail if you put in buggy/bogus/false authentication info, if the call 
does not fail then  there's a real security problem with the WSP.

[1] http://www.jroller.com/gmazza/entry/blog_article_index (links 1 and 2 under 
assorted topics)


> The header 'Security' from the namespace 
> 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
>  was not understood by the recipient of this message, causing the message to 
> not be processed.
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-3240
>                 URL: https://issues.apache.org/jira/browse/CXF-3240
>             Project: CXF
>          Issue Type: Bug
>          Components: WS-* Components
>    Affects Versions: 2.2.9
>         Environment: JDK 1.6, Eclipse Ganymede
>            Reporter: Asif Ali Mohammed
>            Priority: Blocker
>             Fix For: 2.2.9
>
>
> Hi,
> I have written a webservice client for a secured webservice. Im able to build 
> the request along with signed header which takes security information from a 
> .jks file. But in the response Im gettng the following error. 
> ######################################################
> Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: The header 
> 'Security' from the namespace 
> 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
>  was not understood by the recipient of this message, causing the message to 
> not be processed.  This error typically indicates that the sender of this 
> message has enabled a communication protocol that the receiver cannot 
> process.  Please ensure that the configuration of the client's binding is 
> consistent with the service's binding. 
>       at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)
>       at $Proxy61.getAccountBalancesByUser(Unknown Source)
>       at IAccountsService_Client.main(Unknown Source)
> Caused by: org.apache.cxf.binding.soap.SoapFault: The header 'Security' from 
> the namespace 
> 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
>  was not understood by the recipient of this message, causing the message to 
> not be processed.  This error typically indicates that the sender of this 
> message has enabled a communication protocol that the receiver cannot 
> process.  Please ensure that the configuration of the client's binding is 
> consistent with the service's binding. 
>       at 
> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75)
>       at 
> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46)
>       at 
> org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>       at 
> org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:99)
>       at 
> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
>       at 
> org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>       at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:700)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2261)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2134)
>       at 
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1988)
>       at 
> org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)
>       at 
> org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:188)
>       at 
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>       at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)
>       at 
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>       at 
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:487)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
>       at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
>       at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
>       at 
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
>       ... 2 more
> ########################################################
> The client program is :
> public final class IAccountsService_Client {
>     public static void main(String args[]) throws Exception {
>       
>       IAccountsService accountsService = getServicePortType();
>               
>         org.apache.cxf.endpoint.Client client = 
> org.apache.cxf.frontend.ClientProxy.getClient(accountsService);
>         org.apache.cxf.endpoint.Endpoint cxfEndpoint = client.getEndpoint();
>         
>         Map<String,Object> outProps = getOutInterceptorProps();
>         
>         WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
>         cxfEndpoint.getOutInterceptors().add(wssOut);
>         
>         
>       java.lang.String userGuid = "f9f24f385d1b8cba373ad33eb015f98Z";
>       ArrayOfstring accountNumbers = new ArrayOfstring();
>       accountNumbers.getString().add("18630464");
>       accountNumbers.getString().add("10003314");
>       accountNumbers.getString().add("18602340");
>                       
>       UserAccountBalances  _return = 
> accountsService.getAccountBalancesByUser(userGuid, accountNumbers, 
> SourceType.ALL);
>                   
>               
>     }
>     
>     private static IAccountsService getServicePortType(){
>               
>               JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
>               //enable logging of outbound(request) and inbound(response) 
> soap messages
>             factory.getInInterceptors().add(new LoggingInInterceptor());
>            factory.getOutInterceptors().add(new LoggingOutInterceptor());
>              factory.setServiceClass(IAccountsService.class);
>               
> factory.setAddress("http://uss1udp001ampvb.ampf.com:29039/tr/iWealthAcctService";);
>               return (IAccountsService) factory.create();
>       }
>       
>       
>       private static Map<String, Object> getOutInterceptorProps(){
>               Map<String,Object> outProps = new HashMap<String,Object>();
>         // how to configure the properties is outlined below;
>         outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.SIGNATURE);
>         outProps.put(WSHandlerConstants.USER, "clientPortal_e3");
>         outProps.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
>         outProps.put(WSHandlerConstants.PW_CALLBACK_CLASS, 
> KeystorePasswordCallback.class.getName());
>         outProps.put(WSHandlerConstants.SIG_PROP_FILE, "crypto.properties");
>         return outProps;
>       }
> ########################################################
> Request XML :
> INFO: Outbound Message
> ---------------------------
> ID: 1
> Address: http://uss1udp001ampvb.ampf.com:29039/tr/iWealthAcctService
> Encoding: UTF-8
> Content-Type: text/xml
> Headers: 
> {SOAPAction=["https://iWealth.thomson.com/Services/2010/03/IAccountsService/GetAccountBalancesByUser";],
>  Accept=[*/*]}
> Payload: <soap:Envelope 
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Header><wsse:Security
>  
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
>  soap:mustUnderstand="1"><ds:Signature 
> xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; Id="Signature-1">
> <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
> <ds:CanonicalizationMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#";></ds:CanonicalizationMethod>
> <ds:SignatureMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
> Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1";></ds:SignatureMethod>
> <ds:Reference xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; URI="#id-2">
> <ds:Transforms xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
> <ds:Transform xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
> Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#";></ds:Transform>
> </ds:Transforms>
> <ds:DigestMethod xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
> Algorithm="http://www.w3.org/2000/09/xmldsig#sha1";></ds:DigestMethod>
> <ds:DigestValue 
> xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>oCglj+hmoQBUz+yqCDDg6FmPXzc=</ds:DigestValue>
> </ds:Reference>
> </ds:SignedInfo>
> <ds:SignatureValue xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
> CjPQCsoPsyfiiACZdkqx+LBeGkz1teu52Rf/BoTVBWTieh12fo7X0qznSN1AHEYiZCgXvuwdQkcn
> ewUl2vFTj3g/btkHUX8Epgp5X/u2X5Aunk7ZdliGTxZ0Fyv2LAduzDiJim15ti3UBitRqU39iBWk
> inx1jBpbgTeBI33acng=
> </ds:SignatureValue>
> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
> Id="KeyId-E8E2BE415B08955AA412947515791042">
> <wsse:SecurityTokenReference 
> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
>  
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
>  wsu:Id="STRId-E8E2BE415B08955AA412947515791043"><ds:X509Data 
> xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
> <ds:X509IssuerSerial xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>
> <ds:X509IssuerName 
> xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>OU=www.verisign.com/CPS 
> Incorp.by Ref. LIABILITY LTD.(c)97 VeriSign,OU=VeriSign International Server 
> CA - Class 3,OU=VeriSign\, Inc.,O=VeriSign Trust Network</ds:X509IssuerName>
> <ds:X509SerialNumber 
> xmlns:ds="http://www.w3.org/2000/09/xmldsig#";>169372247684920926775018956902222426627</ds:X509SerialNumber>
> </ds:X509IssuerSerial>
> </ds:X509Data></wsse:SecurityTokenReference>
> </ds:KeyInfo>
> </ds:Signature></wsse:Security></soap:Header><soap:Body 
> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";
>  wsu:Id="id-2"><GetAccountBalancesByUser 
> xmlns="https://iWealth.thomson.com/Services/2010/03"; 
> xmlns:ns2="http://schemas.datacontract.org/2004/07/TFOnline.Services.Accounts.DataContracts";
>  xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/Arrays"; 
> xmlns:ns4="http://schemas.datacontract.org/2004/07/Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF";
>  
> xmlns:ns5="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation";
>  
> xmlns:ns6="http://schemas.microsoft.com/2003/10/Serialization/";><userGuid>f9f24f385d1b8cba373ad33eb015f98Z</userGuid><accountNumbers><ns3:string>18630464</ns3:string><ns3:string>10003314</ns3:string><ns3:string>28827094</ns3:string><ns3:string>18692571</ns3:string><ns3:string>10020272</ns3:string><ns3:string>79136285</ns3:string><ns3:string>38920300</ns3:string><ns3:string>16605981</ns3:string><ns3:string>18602340</ns3:string><ns3:string>10033541</ns3:string><ns3:string>10867300</ns3:string><ns3:string>18602340</ns3:string></accountNumbers><sourceType>All</sourceType></GetAccountBalancesByUser></soap:Body></soap:Envelope>
> ################################################################
> Response XML:
> INFO: Inbound Message
> ----------------------------
> ID: 1
> Response-Code: 500
> Encoding: ISO-8859-1
> Content-Type: text/xml
> Headers: {content-type=[text/xml], X-AspNet-Version=[2.0.50727], 
> connection=[Keep-Alive], X-Backside-Transport=[FAIL FAIL], 
> transfer-encoding=[chunked], Date=[Tue, 11 Jan 2011 13:13:00 GMT], 
> Warning=[214 TR_AccountsService_XMLFW DataPower Transformation Applied], 
> Via=[1.1 TR_AccountsService_XMLFW], X-Client-IP=[159.202.161.253], 
> Server=[Microsoft-IIS/6.0], X-Powered-By=[ASP.NET], Cache-Control=[private]}
> Payload: <?xml version="1.0" encoding="UTF-8"?>
> <s:Envelope 
> xmlns:s="http://schemas.xmlsoap.org/soap/envelope/";><s:Body><s:Fault><faultcode>s:MustUnderstand</faultcode><faultstring
>  xml:lang="en-US">The header 'Security' from the namespace 
> 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'
>  was not understood by the recipient of this message, causing the message to 
> not be processed.  This error typically indicates that the sender of this 
> message has enabled a communication protocol that the receiver cannot 
> process.  Please ensure that the configuration of the client's binding is 
> consistent with the service's binding. 
> </faultstring></s:Fault></s:Body></s:Envelope>
> ###############################################################
> Please help me as this has become a blocking issue for my project.
> Thanks in advance,
> Asif ali Mohammed.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to