You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/01/12 19:56:58 UTC

svn commit: r1058275 - in /cxf/branches/2.3.x-fixes: ./ common/common/src/main/java/org/apache/cxf/helpers/ rt/core/src/main/java/org/apache/cxf/interceptor/ rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/ systests/ws-specs/src/test/java/org/apach...

Author: dkulp
Date: Wed Jan 12 18:56:57 2011
New Revision: 1058275

URL: http://svn.apache.org/viewvc?rev=1058275&view=rev
Log:
Merged revisions 1058274 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1058274 | dkulp | 2011-01-12 13:54:24 -0500 (Wed, 12 Jan 2011) | 2 lines
  
  [CXF-3244] Make sure we pull the policies off the BindingFaultInfo from
  the unwrapped version as that's where they are stored.
........

Modified:
    cxf/branches/2.3.x-fixes/   (props changed)
    cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java
    cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java
    cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java
    cxf/branches/2.3.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java
    cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java
    cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/DoubleIt.wsdl

Propchange: cxf/branches/2.3.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java?rev=1058275&r1=1058274&r2=1058275&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java (original)
+++ cxf/branches/2.3.x-fixes/common/common/src/main/java/org/apache/cxf/helpers/XMLUtils.java Wed Jan 12 18:56:57 2011
@@ -133,7 +133,7 @@ public final class XMLUtils {
 
     public static Document parse(InputSource is) throws ParserConfigurationException, SAXException,
         IOException {
-        return getParser().parse(is.getSystemId());
+        return getParser().parse(is);
     }
 
     public static Document parse(File is) throws ParserConfigurationException, SAXException,

Modified: cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java?rev=1058275&r1=1058274&r2=1058275&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java (original)
+++ cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/AbstractLoggingInterceptor.java Wed Jan 12 18:56:57 2011
@@ -54,6 +54,9 @@ public abstract class AbstractLoggingInt
     public AbstractLoggingInterceptor(String phase) {
         super(phase);
     }
+    public AbstractLoggingInterceptor(String id, String phase) {
+        super(id, phase);
+    }
 
     public void setOutputLocation(String s) {
         if (s == null || "<logger>".equals(s)) {

Modified: cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java?rev=1058275&r1=1058274&r2=1058275&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java (original)
+++ cxf/branches/2.3.x-fixes/rt/core/src/main/java/org/apache/cxf/interceptor/LoggingInInterceptor.java Wed Jan 12 18:56:57 2011
@@ -43,16 +43,27 @@ public class LoggingInInterceptor extend
     public LoggingInInterceptor(String phase) {
         super(phase);
     }
+    public LoggingInInterceptor(String id, String phase) {
+        super(id, id);
+    }
 
     public LoggingInInterceptor(int lim) {
         this();
         limit = lim;
     }
+    public LoggingInInterceptor(String id, int lim) {
+        this(Phase.RECEIVE, id);
+        limit = lim;
+    }
 
     public LoggingInInterceptor(PrintWriter w) {
         this();
         this.writer = w;
     }
+    public LoggingInInterceptor(String id, PrintWriter w) {
+        this(Phase.RECEIVE, id);
+        this.writer = w;
+    }
     
     public void handleMessage(Message message) throws Fault {
         if (writer != null || LOG.isLoggable(Level.INFO)) {

Modified: cxf/branches/2.3.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java?rev=1058275&r1=1058274&r2=1058275&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java (original)
+++ cxf/branches/2.3.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyEngineImpl.java Wed Jan 12 18:56:57 2011
@@ -218,6 +218,9 @@ public class PolicyEngineImpl implements
   
     public EffectivePolicy getEffectiveServerFaultPolicy(EndpointInfo ei, BindingFaultInfo bfi, 
                                                          Destination d) {
+
+        bfi = mapToWrappedBindingFaultInfo(bfi);
+
         EffectivePolicy effectivePolicy = (EffectivePolicy)bfi.getProperty(POLICY_INFO_FAULT_SERVER);
         if (null == effectivePolicy) {
             EffectivePolicyImpl epi = createOutPolicyInfo();
@@ -232,6 +235,18 @@ public class PolicyEngineImpl implements
         return effectivePolicy;
     }
 
+    private BindingFaultInfo mapToWrappedBindingFaultInfo(BindingFaultInfo bfi) {
+        BindingOperationInfo boi = bfi.getBindingOperation();
+        if (boi != null && boi.isUnwrapped()) {
+            boi = boi.getWrappedOperation();
+            for (BindingFaultInfo bf2 : boi.getFaults()) {
+                if (bf2.getFaultInfo().getName().equals(bfi.getFaultInfo().getName())) {
+                    return bf2;
+                }
+            }
+        }
+        return bfi;
+    }
     public void setEffectiveServerFaultPolicy(EndpointInfo ei, BindingFaultInfo bfi, EffectivePolicy ep) {
         bfi.setProperty(POLICY_INFO_FAULT_SERVER, ep);
     }

Modified: cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java?rev=1058275&r1=1058274&r2=1058275&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java (original)
+++ cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/security/SecurityPolicyTest.java Wed Jan 12 18:56:57 2011
@@ -20,7 +20,9 @@
 package org.apache.cxf.systest.ws.security;
 
 import java.io.IOException;
+import java.io.PrintWriter;
 import java.io.StringReader;
+import java.io.StringWriter;
 import java.math.BigInteger;
 import java.util.HashMap;
 import java.util.Map;
@@ -40,17 +42,24 @@ import javax.xml.ws.ServiceMode;
 import javax.xml.ws.WebServiceProvider;
 import javax.xml.xpath.XPathConstants;
 
+import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 
+import org.xml.sax.InputSource;
+
+import org.apache.cxf.frontend.ClientProxy;
 import org.apache.cxf.helpers.XMLUtils;
 import org.apache.cxf.helpers.XPathUtils;
+import org.apache.cxf.interceptor.LoggingInInterceptor;
 import org.apache.cxf.interceptor.LoggingOutInterceptor;
 import org.apache.cxf.jaxws.EndpointImpl;
+import org.apache.cxf.policytest.doubleit.DoubleItFault_Exception;
 import org.apache.cxf.policytest.doubleit.DoubleItPortType;
 import org.apache.cxf.policytest.doubleit.DoubleItService;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
+import org.apache.cxf.ws.policy.PolicyConstants;
 import org.apache.cxf.ws.policy.PolicyEngine;
 import org.apache.cxf.ws.security.SecurityConstants;
 import org.apache.ws.security.WSPasswordCallback;
@@ -209,6 +218,7 @@ public class SecurityPolicyTest extends 
         ((BindingProvider)pt).getRequestContext().put(SecurityConstants.ENCRYPT_PROPERTIES, 
                                                       getClass().getResource("bob.properties"));
         pt.doubleIt(BigInteger.valueOf(5));
+
         
         pt = service.getDoubleItPortSign();
         updateAddressPort(pt, PORT);
@@ -220,7 +230,7 @@ public class SecurityPolicyTest extends 
                                                       getClass().getResource("bob.properties"));
         pt.doubleIt(BigInteger.valueOf(5));
 
-        
+
         pt = service.getDoubleItPortSignThenEncrypt();
         updateAddressPort(pt, PORT);
         ((BindingProvider)pt).getRequestContext().put(SecurityConstants.CALLBACK_HANDLER, 
@@ -282,6 +292,36 @@ public class SecurityPolicyTest extends 
         //This should work as it should be properly signed.
         assertEquals(BigInteger.valueOf(10), pt.doubleIt(BigInteger.valueOf(5)));
         
+        StringWriter swriter = new StringWriter();
+        PrintWriter writer = new PrintWriter(swriter);
+        try {
+            ClientProxy.getClient(pt).getInInterceptors()
+                .add(new LoggingInInterceptor("CheckFaultLogging", writer));
+            pt.doubleIt(BigInteger.valueOf(-100));
+            fail("Should have resulted in a DoubleItFault_Exception");
+        } catch (DoubleItFault_Exception ex) {
+            //expected
+            writer.flush();
+            String s = swriter.toString();
+            s = s.substring(s.indexOf("Payload: ") + 9);
+            s = s.substring(0, s.lastIndexOf("Envelope>") + 9);
+            assertTrue("Content wasn't encrypted!", !s.contains("I don't like that."));
+            System.out.println(s);
+            Document d = XMLUtils.parse(new InputSource(new StringReader(s)));
+            Node nd = d.getDocumentElement().getFirstChild();
+            while (nd != null && !"Body".equals(nd.getLocalName())) {
+                nd = nd.getNextSibling();
+            }
+            if (nd == null) {
+                throw ex;
+            }
+            System.out.println(s);
+            Attr val = ((org.w3c.dom.Element)nd)
+                .getAttributeNodeNS(PolicyConstants.WSU_NAMESPACE_URI, "Id");
+            assertNotNull("No wsu:Id, thus, not signed", val);
+        }
+
+        
         //Try sending a message with the "TimestampOnly" policy into affect to the 
         //service running the "signed only" policy.  This SHOULD fail as the
         //body is then not signed.
@@ -327,6 +367,18 @@ public class SecurityPolicyTest extends 
         assertEquals(XMLUtils.toString(nd), "50", o);
     }
     
+    public abstract static class AbstractDoubleItImpl implements DoubleItPortType {
+        /** {@inheritDoc}*/
+        public BigInteger doubleIt(BigInteger numberToDouble) throws DoubleItFault_Exception {
+            if (numberToDouble.equals(BigInteger.valueOf(-100))) {
+                org.apache.cxf.policytest.doubleit.DoubleItFault f 
+                    = new org.apache.cxf.policytest.doubleit.DoubleItFault();
+                f.setReason("Number is -100.  I don't like that.");
+                throw new DoubleItFault_Exception("DoubleItException.", f);
+            }
+            return numberToDouble.multiply(new BigInteger("2"));
+        }
+    }
     
     
     @WebService(targetNamespace = "http://cxf.apache.org/policytest/DoubleIt", 
@@ -334,11 +386,7 @@ public class SecurityPolicyTest extends 
                 serviceName = "DoubleItService", 
                 endpointInterface = "org.apache.cxf.policytest.doubleit.DoubleItPortType",
                 wsdlLocation = "classpath:/wsdl_systest_wsspec/DoubleIt.wsdl")
-    public static class DoubleItImpl implements DoubleItPortType {
-        /** {@inheritDoc}*/
-        public BigInteger doubleIt(BigInteger numberToDouble) {
-            return numberToDouble.multiply(new BigInteger("2"));
-        }
+    public static class DoubleItImpl extends AbstractDoubleItImpl {
     }
     
     @WebService(targetNamespace = "http://cxf.apache.org/policytest/DoubleIt", 
@@ -346,55 +394,39 @@ public class SecurityPolicyTest extends 
                 serviceName = "DoubleItService", 
                 endpointInterface = "org.apache.cxf.policytest.doubleit.DoubleItPortType",
                 wsdlLocation = "classpath:/wsdl_systest_wsspec/DoubleIt.wsdl")
-    public static class DoubleItImplHttps implements DoubleItPortType {
-        /** {@inheritDoc}*/
-        public BigInteger doubleIt(BigInteger numberToDouble) {
-            return numberToDouble.multiply(new BigInteger("2"));
-        }
+    public static class DoubleItImplHttps extends AbstractDoubleItImpl {
     }
+    
     @WebService(targetNamespace = "http://cxf.apache.org/policytest/DoubleIt", 
                 portName = "DoubleItPortEncryptThenSign",
                 serviceName = "DoubleItService", 
                 endpointInterface = "org.apache.cxf.policytest.doubleit.DoubleItPortType",
                 wsdlLocation = "classpath:/wsdl_systest_wsspec/DoubleIt.wsdl")
-    public static class DoubleItImplEncryptThenSign implements DoubleItPortType {
-        /** {@inheritDoc}*/
-        public BigInteger doubleIt(BigInteger numberToDouble) {
-            return numberToDouble.multiply(new BigInteger("2"));
-        }
+    public static class DoubleItImplEncryptThenSign extends AbstractDoubleItImpl {
     }
+    
     @WebService(targetNamespace = "http://cxf.apache.org/policytest/DoubleIt", 
                 portName = "DoubleItPortSignThenEncrypt",
                 serviceName = "DoubleItService", 
                 endpointInterface = "org.apache.cxf.policytest.doubleit.DoubleItPortType",
                 wsdlLocation = "classpath:/wsdl_systest_wsspec/DoubleIt.wsdl")
-    public static class DoubleItImplSignThenEncrypt implements DoubleItPortType {
-        /** {@inheritDoc}*/
-        public BigInteger doubleIt(BigInteger numberToDouble) {
-            return numberToDouble.multiply(new BigInteger("2"));
-        }
+    public static class DoubleItImplSignThenEncrypt extends AbstractDoubleItImpl {
     }
+    
     @WebService(targetNamespace = "http://cxf.apache.org/policytest/DoubleIt", 
                 portName = "DoubleItPortSign",
                 serviceName = "DoubleItService", 
                 endpointInterface = "org.apache.cxf.policytest.doubleit.DoubleItPortType",
                 wsdlLocation = "classpath:/wsdl_systest_wsspec/DoubleIt.wsdl")
-    public static class DoubleItImplSign implements DoubleItPortType {
-        /** {@inheritDoc}*/
-        public BigInteger doubleIt(BigInteger numberToDouble) {
-            return numberToDouble.multiply(new BigInteger("2"));
-        }
+    public static class DoubleItImplSign extends AbstractDoubleItImpl {
     }
+    
     @WebService(targetNamespace = "http://cxf.apache.org/policytest/DoubleIt", 
                 portName = "DoubleItPortXPath",
                 serviceName = "DoubleItService", 
                 endpointInterface = "org.apache.cxf.policytest.doubleit.DoubleItPortType",
                 wsdlLocation = "classpath:/wsdl_systest_wsspec/DoubleIt.wsdl")
-    public static class DoubleItImplXPath implements DoubleItPortType {
-        /** {@inheritDoc}*/
-        public BigInteger doubleIt(BigInteger numberToDouble) {
-            return numberToDouble.multiply(new BigInteger("2"));
-        }
+    public static class DoubleItImplXPath extends AbstractDoubleItImpl {
     }
     
     @WebService(targetNamespace = "http://cxf.apache.org/policytest/DoubleIt", 
@@ -402,12 +434,9 @@ public class SecurityPolicyTest extends 
                 serviceName = "DoubleItService", 
                 endpointInterface = "org.apache.cxf.policytest.doubleit.DoubleItPortType",
                 wsdlLocation = "classpath:/wsdl_systest_wsspec/DoubleIt.wsdl")
-    public static class DoubleItImplSignOnly implements DoubleItPortType {
-        /** {@inheritDoc}*/
-        public BigInteger doubleIt(BigInteger numberToDouble) {
-            return numberToDouble.multiply(new BigInteger("2"));
-        }
+    public static class DoubleItImplSignOnly extends AbstractDoubleItImpl {
     }
+    
     @WebServiceProvider(targetNamespace = "http://cxf.apache.org/policytest/DoubleIt", 
                         portName = "DoubleItPortSignThenEncrypt",
                         serviceName = "DoubleItService", 
@@ -447,22 +476,15 @@ public class SecurityPolicyTest extends 
                 serviceName = "DoubleItService", 
                 endpointInterface = "org.apache.cxf.policytest.doubleit.DoubleItPortType",
                 wsdlLocation = "classpath:/wsdl_systest_wsspec/DoubleIt.wsdl")
-    public static class DoubleItImplCXF3041 implements DoubleItPortType {
-        /** {@inheritDoc}*/
-        public BigInteger doubleIt(BigInteger numberToDouble) {
-            return numberToDouble.multiply(new BigInteger("2"));
-        }
+    public static class DoubleItImplCXF3041 extends AbstractDoubleItImpl {
     }
+    
     @WebService(targetNamespace = "http://cxf.apache.org/policytest/DoubleIt", 
                 portName = "DoubleItPortCXF3042",
                 serviceName = "DoubleItService", 
                 endpointInterface = "org.apache.cxf.policytest.doubleit.DoubleItPortType",
                 wsdlLocation = "classpath:/wsdl_systest_wsspec/DoubleIt.wsdl")
-    public static class DoubleItImplCXF3042 implements DoubleItPortType {
-        /** {@inheritDoc}*/
-        public BigInteger doubleIt(BigInteger numberToDouble) {
-            return numberToDouble.multiply(new BigInteger("2"));
-        }
+    public static class DoubleItImplCXF3042 extends AbstractDoubleItImpl {
     }
     
     @Test

Modified: cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/DoubleIt.wsdl
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/DoubleIt.wsdl?rev=1058275&r1=1058274&r2=1058275&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/DoubleIt.wsdl (original)
+++ cxf/branches/2.3.x-fixes/systests/ws-specs/src/test/resources/wsdl_systest_wsspec/DoubleIt.wsdl Wed Jan 12 18:56:57 2011
@@ -42,6 +42,13 @@
 					</xsd:sequence>
 				</xsd:complexType>
 			</xsd:element>
+            <xsd:element name="DoubleItFault">
+                <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="reason" type="xsd:string" />
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
 		</xsd:schema>
 	</wsdl:types>
 	<wsdl:message name="DoubleItRequest">
@@ -50,10 +57,14 @@
 	<wsdl:message name="DoubleItResponse">
 		<wsdl:part element="tns:DoubleItResponse" name="parameters" />
 	</wsdl:message>
-	<wsdl:portType name="DoubleItPortType">
+	<wsdl:message name="DoubleItFault">
+        <wsdl:part element="tns:DoubleItFault" name="fault" />
+    </wsdl:message>
+    <wsdl:portType name="DoubleItPortType">
 		<wsdl:operation name="DoubleIt">
 			<wsdl:input message="tns:DoubleItRequest" />
 			<wsdl:output message="tns:DoubleItResponse" />
+            <wsdl:fault name="DoubleItFault" message="tns:DoubleItFault" />
 		</wsdl:operation>
 	</wsdl:portType>
 	<wsdl:binding name="DoubleItBinding" type="tns:DoubleItPortType">
@@ -68,6 +79,9 @@
 			<wsdl:output>
 				<soap:body use="literal" />
 			</wsdl:output>
+            <wsdl:fault name="DoubleItFault">
+                <soap:body use="literal" name="DoubleItFault" />
+            </wsdl:fault>
 		</wsdl:operation>
 	</wsdl:binding>
 	<wsdl:binding name="DoubleItBindingEncryptThenSign" type="tns:DoubleItPortType">
@@ -82,6 +96,9 @@
 			<wsdl:output>
 				<soap:body use="literal" />
 			</wsdl:output>
+            <wsdl:fault name="DoubleItFault">
+                <soap:body use="literal" name="DoubleItFault" />
+            </wsdl:fault>
 		</wsdl:operation>
 	</wsdl:binding>
 	<wsdl:binding name="DoubleItBindingSignThenEncrypt" type="tns:DoubleItPortType">
@@ -96,6 +113,9 @@
 			<wsdl:output>
 				<soap:body use="literal" />
 			</wsdl:output>
+            <wsdl:fault name="DoubleItFault">
+                <soap:body use="literal"  name="DoubleItFault"/>
+            </wsdl:fault>
 		</wsdl:operation>
 	</wsdl:binding>
 	<wsdl:binding name="DoubleItBindingSign" type="tns:DoubleItPortType">
@@ -110,6 +130,9 @@
 			<wsdl:output>
 				<soap:body use="literal" />
 			</wsdl:output>
+            <wsdl:fault name="DoubleItFault">
+                <soap:body use="literal" name="DoubleItFault" />
+            </wsdl:fault>
 		</wsdl:operation>
 	</wsdl:binding>
 	<wsdl:binding name="DoubleItBindingXPath" type="tns:DoubleItPortType">
@@ -124,6 +147,9 @@
 			<wsdl:output>
 				<soap:body use="literal" />
 			</wsdl:output>
+            <wsdl:fault name="DoubleItFault">
+                <soap:body use="literal" name="DoubleItFault" />
+            </wsdl:fault>
 		</wsdl:operation>
 	</wsdl:binding>
 	<wsdl:binding name="DoubleItBindingSignedOnly" type="tns:DoubleItPortType">
@@ -139,6 +165,10 @@
 			<wsdl:output>
 				<soap:body use="literal" />
 			</wsdl:output>
+            <wsdl:fault name="DoubleItFault">
+                <wsp:PolicyReference URI="#EncrBody" />
+                <soap:body use="literal" name="DoubleItFault" />
+            </wsdl:fault>
 		</wsdl:operation>
 	</wsdl:binding>
 	<wsdl:binding name="DoubleItBindingTimestampOnly" type="tns:DoubleItPortType">
@@ -153,6 +183,9 @@
 			<wsdl:output>
 				<soap:body use="literal" />
 			</wsdl:output>
+            <wsdl:fault name="DoubleItFault">
+                <soap:body use="literal" name="DoubleItFault" />
+            </wsdl:fault>
 		</wsdl:operation>
 	</wsdl:binding>
 
@@ -169,6 +202,9 @@
                 <wsp:PolicyReference URI="#SignBody"/>
 				<soap:body use="literal" />
 			</wsdl:output>
+            <wsdl:fault name="DoubleItFault">
+                <soap:body use="literal" name="DoubleItFault" />
+            </wsdl:fault>
 		</wsdl:operation>
 	</wsdl:binding>
     <wsdl:binding name="DoubleItBindingCXF3042" type="tns:DoubleItPortType">
@@ -184,6 +220,9 @@
             <wsdl:output>
                 <soap:body use="literal" />
             </wsdl:output>
+            <wsdl:fault name="DoubleItFault">
+                <soap:body use="literal" name="DoubleItFault" />
+            </wsdl:fault>
         </wsdl:operation>
     </wsdl:binding>