[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 Nov 6 16:16:51 EST 2015
Author: putmanb
Date: Fri Nov 6 16:16:51 2015
New Revision: 4394
URL: http://svn.shibboleth.net/view/java-opensaml?rev=4394&view=rev
Log:
Add some more advanced support around various aspects of SOAP header generation.
Mostly this is support for adding mustUnderstand and actor/role in message handlers
that generate SOAP headers.
Added:
trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/util/SOAPVersion.java (with props)
trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/wssecurity/messaging/WSSecurityMessagingSupport.java (with props)
trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/messaging/
trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/messaging/impl/
trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/messaging/impl/AbstractHeaderGeneratingMessageHandler.java (with props)
trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/messaging/impl/package-info.java (with props)
Modified:
trunk/opensaml-soap-api/src/main/java/org/opensaml/soap/messaging/SOAPMessagingSupport.java
trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/wsaddressing/messaging/impl/AddActionHandler.java
trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/wsaddressing/messaging/impl/AddMessageIDHandler.java
trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/wsaddressing/messaging/impl/AddRelatesToHandler.java
trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/wssecurity/messaging/impl/AddTimestampHandler.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=4394&r1=4393&r2=4394&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 Nov 6 16:16:51 2015
@@ -17,6 +17,8 @@
package org.opensaml.soap.messaging;
+import static org.opensaml.soap.util.SOAPVersion.SOAP_1_1;
+
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -39,6 +41,7 @@
import org.opensaml.soap.soap11.Fault;
import org.opensaml.soap.soap11.Header;
import org.opensaml.soap.util.SOAPSupport;
+import org.opensaml.soap.util.SOAPVersion;
/**
* Support class for SOAP messaging.
@@ -111,15 +114,142 @@
public static boolean isSOAPMessage(@Nonnull final MessageContext<? extends XMLObject> messageContext) {
Constraint.isNotNull(messageContext, "Message context cannot be null");
+ if (isSOAP11Message(messageContext)) {
+ return true;
+ }
+
+ //TODO SOAP 1.2 support when object providers are implemented
+ return false;
+ }
+
+ /**
+ * Determine whether the message represented by the message context
+ * contains a SOAP 1.1. Envelope.
+ *
+ * @param messageContext the current message context
+ * @return true iff the message context contains a SOAP 1.1 Envelope
+ */
+ public static boolean isSOAP11Message(@Nonnull final MessageContext<? extends XMLObject> messageContext) {
+ Constraint.isNotNull(messageContext, "Message context cannot be null");
+
+ SOAPVersion version = getSOAPVersion(messageContext);
+ if (version != null && SOAP_1_1.equals(version)) {
+ return true;
+ }
+
+ //TODO SOAP 1.2 support when object providers are implemented
+ return false;
+ }
+
+ /**
+ * Determine whether the SOAP version of the message represented by the message context.
+ *
+ * @param messageContext the current message context
+ * @return the SOAP version. May be null if the version could not be determined
+ */
+ @Nullable public static SOAPVersion getSOAPVersion(
+ @Nonnull final MessageContext<? extends XMLObject> messageContext) {
+ Constraint.isNotNull(messageContext, "Message context cannot be null");
+
final SOAP11Context soap11 = getSOAP11Context(messageContext, false);
// SOAP 1.1 Envelope
if (soap11 != null && soap11.getEnvelope() != null) {
- return true;
+ return SOAP_1_1;
}
//TODO SOAP 1.2 support when object providers are implemented
- return false;
+
+ return null;
+ }
+
+ /**
+ * Check whether the specified header block is indicated as mustUnderstand == true.
+ *
+ * @param messageContext the message context being processed
+ * @param headerBlock the header block to check
+ * @return true if header is indicated as mustUnderstand==true, false if not
+ */
+ public static boolean isMustUnderstand(@Nonnull final MessageContext messageContext,
+ @Nonnull final XMLObject headerBlock) {
[... 268 lines stripped ...]
More information about the commits
mailing list