[java-opensaml COMMIT] /trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/util/SOAPHelper.java

noreply at shibboleth.net noreply at shibboleth.net
Wed Jan 9 21:02:03 EST 2013


Author: scantor
Date: Wed Jan  9 21:02:03 2013
New Revision: 3140

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3140&view=rev
Log:
Access envelope via subcontext.

Modified:
    trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/util/SOAPHelper.java

Modified: trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/util/SOAPHelper.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/util/SOAPHelper.java?rev=3140&r1=3139&r2=3140&view=diff
==============================================================================
--- trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/util/SOAPHelper.java (original)
+++ trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/util/SOAPHelper.java Wed Jan  9 21:02:03 2013
@@ -39,6 +39,7 @@
 import org.opensaml.core.xml.schema.XSBooleanValue;
 import org.opensaml.core.xml.util.AttributeMap;
 import org.opensaml.messaging.context.MessageContext;
+import org.opensaml.soap.messaging.context.Soap11Context;
 import org.opensaml.soap.soap11.ActorBearing;
 import org.opensaml.soap.soap11.Detail;
 import org.opensaml.soap.soap11.EncodingStyleBearing;
@@ -399,21 +400,19 @@
 
     /**
      * Add a header block to the SOAP envelope contained within the specified message context's
-     * {@link MessageContext#getMessage()}.
+     * SOAP subcontext.
      * 
      * @param messageContext the message context being processed
      * @param headerBlock the header block to add
      */
-    public static void addHeaderBlock(@Nonnull final MessageContext<? extends XMLObject> messageContext,
+    public static void addHeaderBlock(@Nonnull final MessageContext messageContext,
             @Nonnull final XMLObject headerBlock) {
         Constraint.isNotNull(messageContext, "Message context cannot be null");
-        Constraint.isNotNull(messageContext.getMessage(), "Message context cannot be empty");
-        
-        XMLObject outboundEnvelope = messageContext.getMessage();
         
         // SOAP 1.1 Envelope
-        if (outboundEnvelope instanceof Envelope) {
-            addSOAP11HeaderBlock((Envelope) outboundEnvelope, headerBlock);
+        Soap11Context soap11 = messageContext.getSubcontext(Soap11Context.class, false);
+        if (soap11 != null) {
+            addSOAP11HeaderBlock(soap11.getEnvelope(), headerBlock);
         } else {
             //TODO SOAP 1.2 support when object providers are implemented
             throw new IllegalArgumentException("Message context did not contain a SOAP Envelope");
@@ -442,7 +441,7 @@
 
     /**
      * Get a header block from the SOAP envelope contained within the specified message context's
-     * {@link MessageContext#getMessage()}.
+     * SOAP subcontext.
      * 
      * @param messageContext the message context being processed
      * @param headerName the name of the header block to return 
@@ -452,16 +451,15 @@
      * @return the list of matching header blocks
      */
     @Nonnull public static List<XMLObject> getInboundHeaderBlock(
-            @Nonnull final MessageContext<? extends XMLObject> messageContext, @Nonnull final QName headerName,
+            @Nonnull final MessageContext messageContext, @Nonnull final QName headerName,
             @Nullable Set<String> targetNodes, boolean isFinalDestination) {
         Constraint.isNotNull(messageContext, "Message context cannot be null");
-        Constraint.isNotNull(messageContext.getMessage(), "Message context cannot be empty");
-        
-        XMLObject inboundEnvelope = messageContext.getMessage();
+        
+        Soap11Context soap11 = messageContext.getSubcontext(Soap11Context.class, false);
         
         // SOAP 1.1 Envelope
-        if (inboundEnvelope instanceof Envelope) {
-            return getSOAP11HeaderBlock((Envelope) inboundEnvelope, headerName, targetNodes, isFinalDestination);
+        if (soap11 != null) {
+            return getSOAP11HeaderBlock(soap11.getEnvelope(), headerName, targetNodes, isFinalDestination);
         }
         
         //TODO SOAP 1.2 support when object providers are implemented



More information about the commits mailing list