[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