[java-opensaml COMMIT] in /trunk: opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/ArtifactSourceIDCriteri...
noreply at shibboleth.net
noreply at shibboleth.net
Tue Oct 6 22:13:37 EDT 2015
Author: putmanb
Date: Tue Oct 6 22:13:36 2015
New Revision: 4346
URL: http://svn.shibboleth.net/view/java-opensaml?rev=4346&view=rev
Log:
OSJ-130: Create metadata index impl for artifact sourceID
Also includes new ArtifactSourceIDCriterion for query input.
Added:
trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/criterion/ArtifactSourceIDCriterion.java (with props)
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/index/impl/ArtifactSourceIDMetadataIndex.java (with props)
trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/index/impl/ArtifactSourceIDMetadataIndexTest.java (with props)
Modified:
trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/index/impl/MetadataIndexingTest.java
Modified: trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/index/impl/MetadataIndexingTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/index/impl/MetadataIndexingTest.java?rev=4346&r1=4345&r2=4346&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/index/impl/MetadataIndexingTest.java (original)
+++ trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/index/impl/MetadataIndexingTest.java Tue Oct 6 22:13:36 2015
@@ -19,12 +19,14 @@
import java.io.File;
import java.net.URL;
+import java.security.MessageDigest;
import java.util.HashSet;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
import net.shibboleth.utilities.java.support.resolver.ResolverException;
import org.opensaml.core.xml.XMLObjectBaseTestCase;
+import org.opensaml.saml.criterion.ArtifactSourceIDCriterion;
import org.opensaml.saml.criterion.EntityRoleCriterion;
import org.opensaml.saml.metadata.resolver.impl.AbstractBatchMetadataResolver;
import org.opensaml.saml.metadata.resolver.impl.FilesystemMetadataResolver;
@@ -33,6 +35,7 @@
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import org.opensaml.saml.saml2.metadata.IDPSSODescriptor;
import org.opensaml.saml.saml2.metadata.SPSSODescriptor;
+import org.opensaml.security.crypto.JCAConstants;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -48,6 +51,7 @@
private File mdFile;
private String entityID;
+ private byte[] artifactSourceID, otherSourceID;
private CriteriaSet criteriaSet;
@@ -55,9 +59,15 @@
protected void setUp() throws Exception {
entityID = "urn:mace:incommon:washington.edu";
+ MessageDigest sha1Digester = MessageDigest.getInstance(JCAConstants.DIGEST_SHA1);
+ artifactSourceID = sha1Digester.digest(entityID.getBytes("UTF-8"));
+ sha1Digester.reset();
+ otherSourceID = sha1Digester.digest("foobar".getBytes("UTF-8"));
+
HashSet<MetadataIndex> indexes = new HashSet<>();
indexes.add(new FunctionDrivenMetadataIndex(new UppercaseEntityIdDescriptorFunction(), new SimpleStringCriteriaFunction()));
indexes.add(new RoleMetadataIndex());
+ indexes.add(new ArtifactSourceIDMetadataIndex());
URL mdURL = FilesystemMetadataResolverTest.class
.getResource("/data/org/opensaml/saml/saml2/metadata/InCommon-metadata.xml");
@@ -70,6 +80,27 @@
metadataProvider.initialize();
criteriaSet = new CriteriaSet();
+ }
+
+ @Test
+ public void testResolveByArtifactSourceID() throws ResolverException {
+ //Empty criteria set. Not an error, just no result.
+ criteriaSet.clear();
+ EntityDescriptor descriptor = metadataProvider.resolveSingle(criteriaSet);
+ Assert.assertNull(descriptor);
+
+ //Criteria with non-matching criterion value. Not an error, just no result.
+ criteriaSet.clear();
+ criteriaSet.add(new ArtifactSourceIDCriterion(otherSourceID));
+ descriptor = metadataProvider.resolveSingle(criteriaSet);
+ Assert.assertNull(descriptor);
+
+ //Criteria with matching criterion value. This should be resolved from the index.
+ criteriaSet.clear();
+ criteriaSet.add(new ArtifactSourceIDCriterion(artifactSourceID));
+ descriptor = metadataProvider.resolveSingle(criteriaSet);
+ Assert.assertNotNull(descriptor, "Retrieved entity descriptor was null");
+ Assert.assertEquals(descriptor.getEntityID(), entityID, "Entity's ID does not match requested ID");
}
@Test
More information about the commits
mailing list