[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/metadata/resolver/index/impl/SAM...
noreply at shibboleth.net
noreply at shibboleth.net
Tue Oct 4 19:09:52 EDT 2016
Author: putmanb
Date: Tue Oct 4 19:09:52 2016
New Revision: 4510
URL: http://svn.shibboleth.net/view/java-opensaml?rev=4510&view=rev
Log:
More work on OSJ-130: Create metadata index impl for SAML artifacts
Add indexing support for artifact source location.
Modified:
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/index/impl/SAMLArtifactMetadataIndex.java
trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/index/impl/SAMLArtifactMetadataIndexTest.java
Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/index/impl/SAMLArtifactMetadataIndex.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/index/impl/SAMLArtifactMetadataIndex.java?rev=4510&r1=4509&r2=4510&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/index/impl/SAMLArtifactMetadataIndex.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/index/impl/SAMLArtifactMetadataIndex.java Tue Oct 4 19:09:52 2016
@@ -18,8 +18,10 @@
package org.opensaml.saml.metadata.resolver.index.impl;
import java.io.UnsupportedEncodingException;
+import java.net.MalformedURLException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
@@ -40,20 +42,25 @@
import org.opensaml.saml.ext.saml1md.SourceID;
import org.opensaml.saml.metadata.resolver.index.MetadataIndex;
import org.opensaml.saml.metadata.resolver.index.MetadataIndexKey;
+import org.opensaml.saml.saml2.metadata.ArtifactResolutionService;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import org.opensaml.saml.saml2.metadata.Extensions;
import org.opensaml.saml.saml2.metadata.RoleDescriptor;
+import org.opensaml.saml.saml2.metadata.SSODescriptor;
import org.opensaml.security.crypto.JCAConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.base.Function;
import com.google.common.base.MoreObjects;
+import com.google.common.base.Predicates;
+import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.collection.LazySet;
import net.shibboleth.utilities.java.support.logic.Constraint;
+import net.shibboleth.utilities.java.support.net.SimpleURLCanonicalizer;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
@@ -73,14 +80,15 @@
* <ul>
* <li>{@link EntityIDToSHA1SourceIDIndexingFunction}</li>
* <li>{@link SourceIDExtensionIndexingFunction}</li>
+ * <li>{@link SourceLocationIndexingFunction}</li>
* </ul>
* </p>
*/
public SAMLArtifactMetadataIndex() {
this(Lists.<Function<EntityDescriptor, Set<MetadataIndexKey>>>newArrayList(
new EntityIDToSHA1SourceIDIndexingFunction(),
- new SourceIDExtensionIndexingFunction()
- //TODO add source location indexing function when implemented
+ new SourceIDExtensionIndexingFunction(),
+ new SourceLocationIndexingFunction()
));
}
@@ -91,8 +99,11 @@
*/
public SAMLArtifactMetadataIndex(
@Nonnull final List<Function<EntityDescriptor, Set<MetadataIndexKey>>> descriptorIndexingFunctions) {
- indexingFunctions = Constraint.isNotNull(descriptorIndexingFunctions,
- "EntityDescriptor indexing functions list may not be null");
+ indexingFunctions = new ArrayList<>(Collections2.filter(
+ Constraint.isNotNull(descriptorIndexingFunctions,
+ "EntityDescriptor indexing functions list may not be null"),
+ Predicates.notNull()));
+ Constraint.isNotEmpty(indexingFunctions, "EntityDescriptor indexing functions list may not be empty");
}
/** {@inheritDoc} */
@@ -122,7 +133,8 @@
}
if (artifact instanceof SAMLSourceLocationArtifact) {
- //TODO can reuse Endpoint index key from EndpointMetadataIndex, or need new key type?
+ results.add(new ArtifactSourceLocationMetadataIndexKey(
+ ((SAMLSourceLocationArtifact)artifact).getSourceLocation()));
}
return results;
@@ -155,11 +167,9 @@
try {
MessageDigest sha1Digester = MessageDigest.getInstance(JCAConstants.DIGEST_SHA1);
byte[] sourceID = sha1Digester.digest(entityID.getBytes("UTF-8"));
- if (log.isTraceEnabled()) {
- log.trace("For entityID '{}' produced artifact SourceID index value '{}'",
[... 410 lines stripped ...]
More information about the commits
mailing list