[java-opensaml COMMIT] in /trunk: opensaml-messaging-api/src/main/java/org/opensaml/messaging/handler/AbstractMessage...

noreply at shibboleth.net noreply at shibboleth.net
Fri Oct 30 14:45:49 EDT 2015


Author: putmanb
Date: Fri Oct 30 14:45:49 2015
New Revision: 4365

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4365&view=rev
Log:
OSJ-137: Add Predicate activationCondition support to MessageHandlers

Also update subclasses of AbstractMessageHandler which were incorrectly not calling super() in their own ctors.
Update classes which override doPreInvoke() to call the super version first rather than at the end,
so that they don't needlessly do work if ultimately the activation condition prevents execution.

Modified:
    trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/handler/AbstractMessageHandler.java
    trunk/opensaml-messaging-api/src/test/java/org/opensaml/messaging/handler/AbstractMessageHandlerTest.java
    trunk/opensaml-messaging-impl/src/main/java/org/opensaml/messaging/handler/impl/SchemaValidateXMLMessage.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/AddChannelBindingsHeaderHandler.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLAddAttributeConsumingServiceHandler.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/MessageLifetimeSecurityHandler.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/MessageReplaySecurityHandler.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/ReceivedEndpointSecurityHandler.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/security/impl/SAMLOutboundProtocolMessageSigningHandler.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/AddConsentToResponseHandler.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/impl/ExtractConsentFromRequestHandler.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandler.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/AddRelatesToHandler.java
    trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/wsaddressing/messaging/impl/ValidateActionHandler.java
    trunk/opensaml-soap-impl/src/main/java/org/opensaml/soap/wssecurity/messaging/impl/AddTimestampHandler.java

Modified: trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/handler/AbstractMessageHandler.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/handler/AbstractMessageHandler.java?rev=4365&r1=4364&r2=4365&view=diff
==============================================================================
--- trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/handler/AbstractMessageHandler.java	(original)
+++ trunk/opensaml-messaging-api/src/main/java/org/opensaml/messaging/handler/AbstractMessageHandler.java	Fri Oct 30 14:45:49 2015
@@ -22,10 +22,15 @@
 import net.shibboleth.utilities.java.support.annotation.Prototype;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
+import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
 import org.opensaml.messaging.context.MessageContext;
+import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
 
 /**
  * A base abstract implementation of {@link MessageHandler}.
@@ -35,6 +40,45 @@
 @Prototype
 public abstract class AbstractMessageHandler<MessageType> extends AbstractInitializableComponent implements
         MessageHandler<MessageType> {
+    
+    /** Logger. */
+    private Logger log = LoggerFactory.getLogger(AbstractMessageHandler.class);
+    
+    /** Condition dictating whether to run or not. */
+    @Nonnull private Predicate<MessageContext> activationCondition;
+    
+    /** Constructor. */
+    public AbstractMessageHandler() {
+        activationCondition = Predicates.alwaysTrue();
+    }
+    
+    /**
+     * Get activation condition indicating whether the handler should be invoked.
+     * 
+     * <p>
+     * Defaults to a predicate which always returns <code>true</code>.
+     * </p>
+     * 
+     * @return  activation condition
+     */
+    @Nonnull public Predicate<MessageContext> getActivationCondition() {
+        return activationCondition;
+    }
+
+    /**
+     * Set activation condition indicating whether the handler should be invoked.
+     * 
+     * <p>
+     * Defaults to a predicate which always returns <code>true</code>.
+     * </p>
+     * 
+     * @param condition predicate to apply
+     */
+    public void setActivationCondition(@Nonnull final Predicate<MessageContext> condition) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        

[... 404 lines stripped ...]


More information about the commits mailing list