[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/security/impl/MetadataCredential...

noreply at shibboleth.net noreply at shibboleth.net
Tue May 13 20:43:55 EDT 2014


Author: putmanb
Date: Tue May 13 20:43:55 2014
New Revision: 3867

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3867&view=rev
Log:
Refactor MetadataCredentialResolver to support an additional mode of resolving creds from direct input of a RoleDescriptorCriterion.
Remove old resolver factory that isn't needed any more, since we changed the caching system.

Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolver.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolverFactory.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataEncryptionParametersResolver.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/security/impl/MetadataCredentialResolverTest.java

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolver.java?rev=3867&r1=3866&r2=3867&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolver.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/MetadataCredentialResolver.java Tue May 13 20:43:55 2014
@@ -18,28 +18,31 @@
 package org.opensaml.saml.security.impl;
 
 import java.util.ArrayList;
-
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
 import java.util.concurrent.locks.ReadWriteLock;
 
 import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
 import javax.xml.namespace.QName;
 
+import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
 import net.shibboleth.utilities.java.support.collection.LockableClassToInstanceMultiMap;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.component.InitializableComponent;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
 import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
 import net.shibboleth.utilities.java.support.resolver.ResolverException;
 
 import org.opensaml.core.criterion.EntityIdCriterion;
 import org.opensaml.saml.criterion.EntityRoleCriterion;
 import org.opensaml.saml.criterion.ProtocolCriterion;
+import org.opensaml.saml.criterion.RoleDescriptorCriterion;
 import org.opensaml.saml.metadata.resolver.RoleDescriptorResolver;
+import org.opensaml.saml.saml2.metadata.EntityDescriptor;
 import org.opensaml.saml.saml2.metadata.KeyDescriptor;
 import org.opensaml.saml.saml2.metadata.RoleDescriptor;
 import org.opensaml.security.credential.Credential;
@@ -47,7 +50,6 @@
 import org.opensaml.security.credential.UsageType;
 import org.opensaml.security.credential.impl.AbstractCriteriaFilteringCredentialResolver;
 import org.opensaml.security.criteria.UsageCriterion;
-import org.opensaml.xmlsec.SecurityConfigurationSupport;
 import org.opensaml.xmlsec.keyinfo.KeyInfoCredentialResolver;
 import org.opensaml.xmlsec.keyinfo.KeyInfoCriterion;
 import org.slf4j.Logger;
@@ -57,11 +59,41 @@
  * A credential resolver capable of resolving credentials from SAML 2 metadata.
  * 
  * <p>
- * The instance of {@link CriteriaSet} passed to {@link #resolve(CriteriaSet)} and {@link #resolveSingle(CriteriaSet)}
- * must minimally contain 2 criteria: {@link EntityIdCriterion} and {@link EntityRoleCriterion}.
- * {@link ProtocolCriterion} is optional; if absent, credentials will be resolved from all matching roles, 
- * regardless of protocol support. {@link UsageCriterion} is optional; if absent, the effective value 
- * {@link UsageType#UNSPECIFIED} will be used for credential resolution.
+ * Credentials may be resolved either by directly supplying an instance of {@link RoleDescriptor} in
+ * the input {@link CriteriaSet}, or by looking up the role descriptor via a supplied {@link RoleDescriptorResolver}.
+ * </p>
+ * 
+ * <p>
+ * The following resolution modes and associated {@link net.shibboleth.utilities.java.support.resolver.Criterion}
+ * inputs are supported:
+ * 
+ * Direct resolution from a supplied {@link RoleDescriptor}:
+ * 
+ * <ul> 
+ * <li>{@link RoleDescriptorCriterion} - required</li>
+ * <li>{@link UsageCriterion} - optional; if absent, the effective value 
+ *     {@link UsageType#UNSPECIFIED} will be used for credential resolution.</li>
+ * </ul>
+ * 
+ * Resolution from a metadata source using a {@link RoleDescriptorResolver}:
+ * 
+ * <ul>
+ * <li>{@link EntityIdCriterion} - required</li>
+ * <li>{@link EntityRoleCriterion} - required</li>

[... 705 lines stripped ...]


More information about the commits mailing list