[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSu...

noreply at shibboleth.net noreply at shibboleth.net
Wed Mar 19 12:15:09 EDT 2014


Author: scantor
Date: Wed Mar 19 12:15:08 2014
New Revision: 3713

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3713&view=rev
Log:
IDP-383 - add predicate capability for checking NameIDPolicy, and affiliation support

Added:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AffiliationNameIDPolicyPredicate.java   (with props)
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/DefaultNameIDPolicyPredicate.java   (with props)
    trunk/opensaml-saml-impl/src/test/resources/data/org/opensaml/saml/saml2/profile/
    trunk/opensaml-saml-impl/src/test/resources/data/org/opensaml/saml/saml2/profile/impl/
    trunk/opensaml-saml-impl/src/test/resources/data/org/opensaml/saml/saml2/profile/impl/affiliation-metadata.xml   (with props)
Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjectsTest.java

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java?rev=3713&r1=3712&r2=3713&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/AddNameIDToSubjects.java Wed Mar 19 12:15:08 2014
@@ -28,6 +28,7 @@
 import org.opensaml.profile.action.ActionSupport;
 import org.opensaml.profile.action.EventIds;
 import org.opensaml.profile.context.ProfileRequestContext;
+import org.opensaml.profile.context.navigate.InboundMessageContextLookup;
 import org.opensaml.profile.context.navigate.OutboundMessageContextLookup;
 
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
@@ -53,6 +54,7 @@
 
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
+import com.google.common.base.Predicate;
 import com.google.common.base.Predicates;
 import com.google.common.base.Strings;
 import com.google.common.collect.ArrayListMultimap;
@@ -90,14 +92,20 @@
     /** Flag controlling whether to overwrite an existing NameID. */
     private boolean overwriteExisting;
 
+    /** Strategy used to locate the {@link AuthnRequest} to operate on, if any. */
+    @Nonnull private Function<ProfileRequestContext,AuthnRequest> requestLookupStrategy;
+    
     /** Strategy used to locate the {@link Response} to operate on. */
-    @Nonnull private Function<ProfileRequestContext, Response> responseLookupStrategy;
-
+    @Nonnull private Function<ProfileRequestContext,Response> responseLookupStrategy;
+
+    /** Predicate to validate {@link NameIDPolicy}. */
+    @Nonnull private Predicate<ProfileRequestContext> nameIDPolicyPredicate;
+    
     /** Strategy used to determine the formats to try. */
-    @Nonnull private Function<ProfileRequestContext, List<String>> formatLookupStrategy;
+    @Nonnull private Function<ProfileRequestContext,List<String>> formatLookupStrategy;
     
     /** Map of formats to generators. */
-    @Nonnull @NonnullElements private ListMultimap<String, SAML2NameIDGenerator> nameIdGeneratorMap;
+    @Nonnull @NonnullElements private ListMultimap<String,SAML2NameIDGenerator> nameIdGeneratorMap;
     
     /** Fallback generator, generally for legacy support. */
     @Nullable private SAML2NameIDGenerator defaultNameIdGenerator;
@@ -107,6 +115,9 @@
     
     /** Format required by requested {@link NameIDPolicy}. */
     @Nullable private String requiredFormat;
+
+    /** Request to examine. */
+    @Nullable private AuthnRequest request;
     
     /** Response to modify. */
     @Nullable private Response response;
@@ -122,8 +133,12 @@
         
         overwriteExisting = true;
         
+        requestLookupStrategy =
+                Functions.compose(new MessageLookup<>(AuthnRequest.class), new InboundMessageContextLookup());
         responseLookupStrategy =
                 Functions.compose(new MessageLookup<>(Response.class), new OutboundMessageContextLookup());
+        
+        nameIDPolicyPredicate = new DefaultNameIDPolicyPredicate();
         formatLookupStrategy = new MetadataNameIdentifierFormatStrategy();
         nameIdGeneratorMap = ArrayListMultimap.create();
         formats = Collections.emptyList();
@@ -139,6 +154,18 @@
         
         overwriteExisting = flag;
     }
+
+    /**
+     * Set the strategy used to locate the {@link AuthnRequest} to examine, if any.
+     * 
+     * @param strategy strategy used to locate the {@link AuthnRequest}
+     */
+    public synchronized void setRequestLookupStrategy(
+            @Nonnull final Function<ProfileRequestContext,AuthnRequest> strategy) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+

[... 249 lines stripped ...]


More information about the commits mailing list