The error is that WSS4J can't find the element to sign (Timestamp). You could probably fix this by adding a timestamp action to the WSS4JOutInterceptor configuration:
<entry key="action" value="Timestamp Signature" /> Colm. On Mon, Dec 20, 2010 at 12:20 PM, Juan Pablo Pizarro <[email protected]> wrote: > Hello All, I' trying to call a .net web service with spring - cxf > configuration. I getting the following exception: > > General security error (WSEncryptBody/WSSignEnvelope: Element to > encrypt/sign not found: > http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd, > Timestamp) (the same with Body part). > > The error is clear.. but I call the same service with soapUI and it works > with timestamp and body in the Parts configuration. > > Then, I suppose that timestamp and body will be there (signatureParts). > > My client-beans.xml > > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:jaxws="http://cxf.apache.org/jaxws" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:p="http://cxf.apache.org/policy" > xmlns:cxf="http://cxf.apache.org/core" > xmlns:wsa="http://cxf.apache.org/ws/addressing" > xmlns:http="http://cxf.apache.org/transports/http/configuration" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans.xsd > http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd > http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd > http://schemas.xmlsoap.org/ws/2005/02/rm/policy > http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd > http://cxf.apache.org/transports/http/configuration > http://cxf.apache.org/schemas/configuration/http-conf.xsd > "> > > <import resource="classpath:META-INF/cxf/cxf.xml" /> > <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> > <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> > <import resource="classpath:META-INF/cxf/cxf-extension-http.xml" /> > <import resource="classpath:META-INF/cxf/cxf-extension-http-binding.xml" > /> > <import resource="classpath:META-INF/cxf/cxf-extension-policy.xml" /> > <import resource="classpath:META-INF/cxf/cxf-extension-ws-security.xml" > /> > > <cxf:bus> > <cxf:features> > <p:policies /> > <cxf:logging /> > <wsa:addressing /> > </cxf:features> > </cxf:bus> > > <http:conduit name="http://wss.aduanas.gub.uy/.*"> > <http:client Connection="Keep-Alive" > AllowChunking="false" > ConnectionTimeout="120000" > ReceiveTimeout="120000" > ContentType="application/soap+xml;charset=UTF-8"/> > </http:conduit> > > <bean id="wsclient" class="org.tempuri.IStock" > factory-bean="wsFactory" factory-method="create" /> > > <bean id="wsFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> > <property name="serviceClass" value="org.tempuri.IStock" /> > <property name="address" value=" > http://wss.aduanas.gub.uy/LuciaWsSecurity/Stock.svc" /> > > <property name="outInterceptors"> > <list> > <bean > class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" /> > <ref bean="wss4jOutInterceptor" /> > </list> > </property> > </bean> > > <bean id="wss4jOutInterceptor" > class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor"> > <constructor-arg> > <map> > <entry key="action" value="Signature" /> > <entry key="signaturePropFile" > value="Client_Sign.properties" /> > <entry key="user" > value="le-60dca1be-5393-48b3-bbc3-0dfb1ab40d25" /> > <entry key="passwordType" value="PasswordDigest" /> > <entry key="mustUnderstand" value="false" /> > <entry key="signatureKeyIdentifier" value="DirectReference" > /> > > <entry key="passwordCallbackRef"> > <ref bean="signaturePwdCallback" /> > </entry> > <entry key="signatureParts" value="{Element}{ > http://www.w3.org/2005/08/addressing}Action;{Element}{http://www.w3.org/2005/08/addressing}ReplyTo;{Element}{http://www.w3.org/2005/08/addressing}MessageID;{Element}{http://www.w3.org/2005/08/addressing}To;{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp;{Content}{http://www.w3.org/2003/05/soap-envelope}Body" > /> > </map> > </constructor-arg> > </bean> > > <bean id="signaturePwdCallback" class="org.jpp.ws.client.ClientCallback" > /> > > </beans> > > The wsdl: > > <?xml version="1.0" encoding="UTF-8"?> > <wsdl:definitions name="MenStock" targetNamespace="http://tempuri.org/" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap=" > http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:wsu=" > http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd > " > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsam=" > http://www.w3.org/2007/05/addressing/metadata" > xmlns:tns="http://tempuri.org/" xmlns:wsa=" > http://schemas.xmlsoap.org/ws/2004/08/addressing" > xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap=" > http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msc=" > http://schemas.microsoft.com/ws/2005/12/wsdl/contract" > xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap12=" > http://schemas.xmlsoap.org/wsdl/soap12/" > xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx=" > http://schemas.xmlsoap.org/ws/2004/09/mex"> > <wsp:Policy wsu:Id="CustomBinding_IStock_policy"> > <wsp:ExactlyOne> > <wsp:All> > <sp:AsymmetricBinding > xmlns:sp=" > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> > <wsp:Policy> > <sp:InitiatorToken> > <wsp:Policy> > <sp:X509Token > sp:IncludeToken=" > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient > "> > <wsp:Policy> > <sp:WssX509V3Token10 /> > </wsp:Policy> > </sp:X509Token> > </wsp:Policy> > </sp:InitiatorToken> > <sp:RecipientToken> > <wsp:Policy> > <sp:X509Token > sp:IncludeToken=" > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never"> > <wsp:Policy> > <sp:WssX509V3Token10 /> > </wsp:Policy> > </sp:X509Token> > </wsp:Policy> > </sp:RecipientToken> > <sp:AlgorithmSuite> > <wsp:Policy> > <sp:Basic256 /> > </wsp:Policy> > </sp:AlgorithmSuite> > <sp:Layout> > <wsp:Policy> > <sp:Lax /> > </wsp:Policy> > </sp:Layout> > <sp:IncludeTimestamp /> > <sp:OnlySignEntireHeadersAndBody /> > </wsp:Policy> > </sp:AsymmetricBinding> > <sp:Wss10 xmlns:sp=" > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> > <wsp:Policy> > <sp:MustSupportRefKeyIdentifier /> > <sp:MustSupportRefIssuerSerial /> > </wsp:Policy> > </sp:Wss10> > <sp:Trust10 xmlns:sp=" > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> > <wsp:Policy> > <sp:MustSupportIssuedTokens /> > <sp:RequireClientEntropy /> > <sp:RequireServerEntropy /> > </wsp:Policy> > </sp:Trust10> > <wsaw:UsingAddressing /> > </wsp:All> > </wsp:ExactlyOne> > </wsp:Policy> > <wsp:Policy wsu:Id="CustomBinding_IStock_MensajeStock_Input_policy"> > <wsp:ExactlyOne> > <wsp:All> > <sp:SignedParts > xmlns:sp=" > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> > <sp:Body /> > <sp:Header Name="To" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="From" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="FaultTo" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="ReplyTo" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="MessageID" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="RelatesTo" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="Action" Namespace=" > http://www.w3.org/2005/08/addressing" /> > </sp:SignedParts> > </wsp:All> > </wsp:ExactlyOne> > </wsp:Policy> > <wsp:Policy wsu:Id="CustomBinding_IStock_MensajeStock_output_policy"> > <wsp:ExactlyOne> > <wsp:All> > <sp:SignedParts > xmlns:sp=" > http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"> > <sp:Body /> > <sp:Header Name="To" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="From" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="FaultTo" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="ReplyTo" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="MessageID" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="RelatesTo" Namespace=" > http://www.w3.org/2005/08/addressing" /> > <sp:Header Name="Action" Namespace=" > http://www.w3.org/2005/08/addressing" /> > </sp:SignedParts> > </wsp:All> > </wsp:ExactlyOne> > </wsp:Policy> > <wsdl:types> > <xsd:schema targetNamespace="http://tempuri.org/Imports"> > <xsd:import > schemaLocation=" > http://wss.aduanas.gub.uy/LuciaWsSecurity/Stock.svc?xsd=xsd0" > namespace="http://tempuri.org/" /> > <xsd:import > schemaLocation=" > http://wss.aduanas.gub.uy/LuciaWsSecurity/Stock.svc?xsd=xsd1" > namespace=" > http://schemas.microsoft.com/2003/10/Serialization/" /> > <xsd:import > schemaLocation=" > http://wss.aduanas.gub.uy/LuciaWsSecurity/Stock.svc?xsd=xsd2" > namespace="http://schemas.datacontract.org/2004/07/WCF_Stock" > /> > </xsd:schema> > </wsdl:types> > <wsdl:message name="IStock_MensajeStock_InputMessage"> > <wsdl:part name="parameters" element="tns:MensajeStock" /> > </wsdl:message> > <wsdl:message name="IStock_MensajeStock_OutputMessage"> > <wsdl:part name="parameters" element="tns:MensajeStockResponse" /> > </wsdl:message> > <wsdl:portType name="IStock"> > <wsdl:operation name="MensajeStock"> > <wsdl:input wsaw:Action="http://tempuri.org/IStock/MensajeStock" > message="tns:IStock_MensajeStock_InputMessage" /> > <wsdl:output wsaw:Action=" > http://tempuri.org/IStock/MensajeStockResponse" > message="tns:IStock_MensajeStock_OutputMessage" /> > </wsdl:operation> > </wsdl:portType> > <wsdl:binding name="CustomBinding_IStock" type="tns:IStock"> > <wsp:PolicyReference URI="#CustomBinding_IStock_policy" /> > <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" /> > <wsdl:operation name="MensajeStock"> > <soap12:operation soapAction=" > http://tempuri.org/IStock/MensajeStock" > style="document" /> > <wsdl:input> > <wsp:PolicyReference > URI="#CustomBinding_IStock_MensajeStock_Input_policy" /> > <soap12:body use="literal" /> > </wsdl:input> > <wsdl:output> > <wsp:PolicyReference > URI="#CustomBinding_IStock_MensajeStock_output_policy" > /> > <soap12:body use="literal" /> > </wsdl:output> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="MenStock"> > <wsdl:port name="CustomBinding_IStock" > binding="tns:CustomBinding_IStock"> > <soap12:address location=" > http://wss.aduanas.gub.uy/LuciaWsSecurity/Stock.svc" /> > <wsa10:EndpointReference> > <wsa10:Address> > http://wss.aduanas.gub.uy/LuciaWsSecurity/Stock.svc</wsa10:Address> > <Identity xmlns=" > http://schemas.xmlsoap.org/ws/2006/02/addressingidentity"> > <Dns>wss.aduanas.gub.uy</Dns> > </Identity> > </wsa10:EndpointReference> > </wsdl:port> > </wsdl:service> > </wsdl:definitions> > > Any suggestion or link to avoid my error? > > Thanks! >
