[java-opensaml COMMIT] in /trunk: opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.ja...

noreply at shibboleth.net noreply at shibboleth.net
Fri Jun 19 20:02:32 EDT 2015


Author: putmanb
Date: Fri Jun 19 20:02:32 2015
New Revision: 4310

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4310&view=rev
Log:
Add SOAP 1.1 Fault support to SOAP11Context.
Add Fault support methods to SOAPMessagingSupport.
Update SOAP 1.1 Encoder to handle emitting Fault if there is one registered in the SOAP11Context.

Modified:
    trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java
    trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/context/SOAP11Context.java
    trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/soap11/encoder/http/impl/HTTPSOAP11Encoder.java
    trunk/opensaml-soap-impl/src/test/java/org/opensaml/soap/soap11/encoder/http/impl/HTTPSOAP11EncoderTest.java

Modified: trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java?rev=4310&r1=4309&r2=4310&view=diff
==============================================================================
--- trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java	(original)
+++ trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java	Fri Jun 19 20:02:32 2015
@@ -19,6 +19,7 @@
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 import javax.annotation.Nonnull;
@@ -35,6 +36,7 @@
 import org.opensaml.soap.messaging.context.SOAP11Context;
 import org.opensaml.soap.soap11.ActorBearing;
 import org.opensaml.soap.soap11.Envelope;
+import org.opensaml.soap.soap11.Fault;
 import org.opensaml.soap.soap11.Header;
 import org.opensaml.soap.util.SOAPSupport;
 
@@ -278,4 +280,64 @@
         envelopeHeader.getUnknownXMLObjects().add(headerBlock);
     }
     
+    /**
+     * Register a SOAP 1.1. fault based on its constituent information items.
+     * 
+     * @param messageContext the current message context
+     * @param faultCode the fault code QName (required)
+     * @param faultString the fault message string value (required)
+     * @param faultActor the fault actor value (may be null)
+     * @param detailChildren the detail child elements
+     * @param detailAttributes the detail element attributes
+     */
+    // Checkstyle: ParameterNumber OFF -- fault just has that many constituent parts
+    public static void registerSOAP11Fault(@Nonnull final MessageContext messageContext, 
+            @Nonnull final QName faultCode, @Nonnull final String faultString, @Nullable final String faultActor, 
+            @Nullable final List<XMLObject> detailChildren, @Nullable final Map<QName, String> detailAttributes) {
+        
+        registerSOAP11Fault(messageContext, 
+                SOAPSupport.buildSOAP11Fault(faultCode, faultString, faultActor, detailChildren, detailAttributes));
+    }
+    // Checkstyle: ParameterNumber
+    
+    /**
+     * Register a SOAP 1.1 fault.
+     * 
+     * @param messageContext the current message context
+     * @param fault the fault to register
+     */
+    public static void registerSOAP11Fault(@Nonnull final MessageContext messageContext, @Nullable final Fault fault) {
+        SOAP11Context soap11Context = getSOAP11Context(messageContext, true);
+        
+        soap11Context.setFault(fault);
+    }
+    
+    /**
+     * Get the registered SOAP 1.1 fault, if any.
+     * 
+     * @param messageContext the current message context
+     * @return the registered fault, or null
+     */
+    public static Fault getSOAP11Fault(@Nonnull final MessageContext messageContext) {
+        SOAP11Context soap11Context = getSOAP11Context(messageContext, false);
+        if (soap11Context != null) {
+            return soap11Context.getFault();
+        } else {
+            return null;
+        }
+    }
+    
+    /**
+     * Clear the currently registered SOAP fault, if any.
+     * 
+     * @param messageContext the current message context
+     */
+    public static void clearFault(@Nonnull final MessageContext messageContext) {
+        SOAP11Context soap11Context = getSOAP11Context(messageContext, false);
+        if (soap11Context != null) {
+            soap11Context.setFault(null);
+        }
+        //TODO SOAP 1.2
+    }
+    
 }

Modified: trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/context/SOAP11Context.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/context/SOAP11Context.java?rev=4310&r1=4309&r2=4310&view=diff
==============================================================================
--- trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/context/SOAP11Context.java	(original)
+++ trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/context/SOAP11Context.java	Fri Jun 19 20:02:32 2015
@@ -21,6 +21,7 @@
 
 import org.opensaml.messaging.context.BaseContext;
 import org.opensaml.soap.soap11.Envelope;
+import org.opensaml.soap.soap11.Fault;
 
 /**

[... 175 lines stripped ...]


More information about the commits mailing list