[java-opensaml COMMIT] in /trunk: opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/navigate...

noreply at shibboleth.net noreply at shibboleth.net
Wed Aug 19 19:32:07 EDT 2015


Author: putmanb
Date: Wed Aug 19 19:32:07 2015
New Revision: 4325

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4325&view=rev
Log:
Update some SAML messaging support classes to take a configured entity context Class, rather than hardcoding to SAMLPeerEntityContext.

This is to support reuse for example delegation cases with SAMLPresenterEntityContext.

Modified:
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/navigate/SAMLMessageContextAuthenticationFunction.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandler.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLProtocolAndRoleHandler.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandlerTest.java
    trunk/opensaml-saml-impl/src/test/resources/data/org/opensaml/saml/saml2/metadata/InCommon-metadata.xml

Modified: trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/navigate/SAMLMessageContextAuthenticationFunction.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/navigate/SAMLMessageContextAuthenticationFunction.java?rev=4325&r1=4324&r2=4325&view=diff
==============================================================================
--- trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/navigate/SAMLMessageContextAuthenticationFunction.java	(original)
+++ trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/common/messaging/context/navigate/SAMLMessageContextAuthenticationFunction.java	Wed Aug 19 19:32:07 2015
@@ -17,26 +17,46 @@
 
 package org.opensaml.saml.common.messaging.context.navigate;
 
+import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
+import net.shibboleth.utilities.java.support.logic.Constraint;
+
 import org.opensaml.messaging.context.MessageContext;
+import org.opensaml.saml.common.messaging.context.AbstractAuthenticatableSAMLEntityContext;
 import org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext;
 
 import com.google.common.base.Function;
 
 /**
- * Function that returns the authenticated state of a {@link SAMLPeerEntityContext}.
+ * Function that returns the authenticated state of a configured {@link AbstractAuthenticatableSAMLEntityContext},
+ * defaulting to {@link SAMLPeerEntityContext}.
  */
 public class SAMLMessageContextAuthenticationFunction implements Function<MessageContext,Boolean> {
+    
+    /** The context class representing the authenticatable SAML entity. Defaults to: {@link SAMLPeerEntityContext}. */
+    @Nonnull private Class<? extends AbstractAuthenticatableSAMLEntityContext> entityContextClass = 
+            SAMLPeerEntityContext.class;
+    
+    /**
+     * Set the class type holding the authenticatable SAML entity data.
+     * 
+     * <p>Defaults to: {@link SAMLPeerEntityContext}.</p>
+     * 
+     * @param clazz the entity context class type
+     */
+    public void setEntityContextClass(@Nonnull final Class<? extends AbstractAuthenticatableSAMLEntityContext> clazz) {
+        entityContextClass = Constraint.isNotNull(clazz, "The SAML entity context class may not be null");
+    }
 
     /** {@inheritDoc} */
     @Override
     @Nullable public Boolean apply(@Nullable final MessageContext input) {
         
         if (input != null) {
-            final SAMLPeerEntityContext peerCtx = input.getSubcontext(SAMLPeerEntityContext.class);
-            if (peerCtx != null) {
-                return peerCtx.isAuthenticated();
+            final AbstractAuthenticatableSAMLEntityContext entityCtx = input.getSubcontext(entityContextClass);
+            if (entityCtx != null) {
+                return entityCtx.isAuthenticated();
             }
         }
         

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandler.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandler.java?rev=4325&r1=4324&r2=4325&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandler.java	(original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandler.java	Wed Aug 19 19:32:07 2015
@@ -30,6 +30,7 @@
 import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.messaging.handler.AbstractMessageHandler;
 import org.opensaml.messaging.handler.MessageHandlerException;
+import org.opensaml.saml.common.messaging.context.AbstractSAMLEntityContext;
 import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
 import org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext;
 import org.opensaml.saml.common.messaging.context.SAMLProtocolContext;
@@ -43,11 +44,12 @@
 
 /**

[... 309 lines stripped ...]


More information about the commits mailing list