[java-identity-provider COMMIT] in /trunk/idp-attribute-resolver-api: pom.xml src/main/java/net/shibboleth/idp/attrib...

noreply at shibboleth.net noreply at shibboleth.net
Wed May 7 04:05:13 EDT 2014


Author: rdw
Date: Wed May  7 04:05:13 2014
New Revision: 5863

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=5863&view=rev
Log:
IDP-280  Predicate of attribute resolver plugins should take a <ProfileContext>

Modified:
    trunk/idp-attribute-resolver-api/pom.xml
    trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPlugin.java
    trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedAttributeDefinition.java
    trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnector.java
    trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolverPlugin.java
    trunk/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPluginTest.java
    trunk/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/ResolvedAttributeDefinitionTest.java
    trunk/idp-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnectorTest.java

Modified: trunk/idp-attribute-resolver-api/pom.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-api/pom.xml?rev=5863&r1=5862&r2=5863&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-api/pom.xml (original)
+++ trunk/idp-attribute-resolver-api/pom.xml Wed May  7 04:05:13 2014
@@ -32,6 +32,11 @@
             <artifactId>idp-core</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>${opensaml.groupId}</groupId>
+            <artifactId>opensaml-messaging-api</artifactId>
+            <version>${opensaml.version}</version>
+        </dependency>
 
         <dependency>
             <groupId>${spring.groupId}</groupId>

Modified: trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPlugin.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPlugin.java?rev=5863&r1=5862&r2=5863&view=diff
==============================================================================
--- trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPlugin.java (original)
+++ trunk/idp-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractResolverPlugin.java Wed May  7 04:05:13 2014
@@ -36,10 +36,13 @@
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
 
+import org.opensaml.messaging.context.navigate.ParentContextLookup;
+import org.opensaml.profile.context.ProfileRequestContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.DisposableBean;
 
+import com.google.common.base.Function;
 import com.google.common.base.Objects;
 import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
@@ -51,8 +54,8 @@
  * @param <ResolvedType> object type this plug-in resolves to
  */
 @ThreadSafe
-public abstract class AbstractResolverPlugin<ResolvedType> extends AbstractIdentifiableInitializableComponent
-        implements ResolverPlugin<ResolvedType>, DisposableBean {
+public abstract class AbstractResolverPlugin<ResolvedType> extends AbstractIdentifiableInitializableComponent implements
+        ResolverPlugin<ResolvedType>, DisposableBean {
 
     /** Class logger. */
     @Nonnull private final Logger log = LoggerFactory.getLogger(AbstractResolverPlugin.class);
@@ -60,8 +63,12 @@
     /** Whether an {@link AttributeResolutionContext} that occurred resolving attributes will be re-thrown. */
     private boolean propagateResolutionExceptions = true;
 
+    /** Strategy to get the {@link ProfileRequestContext}. */
+    @Nonnull private Function<AttributeResolutionContext, ProfileRequestContext> profileContextStrategy =
+            new ParentContextLookup<>();
+
     /** Criterion that must be met for this plugin to be active for the given request. */
-    @Nonnull private Predicate<AttributeResolutionContext> activationCriteria = Predicates.alwaysTrue();
+    @Nullable private Predicate<ProfileRequestContext> activationCriteria;
 
     /** IDs of the {@link ResolutionPlugIn}s this plug-in depends on. */
     @Nonnull @NonnullElements private Set<ResolverPluginDependency> dependencies = Collections.emptySet();
@@ -77,6 +84,25 @@
     }
 
     /**
+     * Sets the mechanism to find out the {@link ProfileRequestContext}.
+     * 
+     * @param strategy the mechanism
+     */
+    public void setProfileContextStrategy(Function<AttributeResolutionContext, ProfileRequestContext> strategy) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        profileContextStrategy = Constraint.isNotNull(strategy, "Profile Context Strategy cannot be null");
+    }
+
+    /**

[... 201 lines stripped ...]


More information about the commits mailing list