[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