[java-metadata-aggregator] branch main updated: MDA-211 - Refactor getEntityID and ENTITYID_ATTRIB_NAME
Ian Young
ian at iay.org.uk
Fri Feb 2 14:46:32 UTC 2024
This is an automated email from the git hooks/post-receive script.
iay pushed a commit to branch main
in repository java-metadata-aggregator.
View the commit online:
http://git.shibboleth.net/view/?p=java-metadata-aggregator.git;a=commit;h=f7558107d275ec4df317f7d505d68cf476662ecd
The following commit(s) were added to refs/heads/main by this push:
new f755810 MDA-211 - Refactor getEntityID and ENTITYID_ATTRIB_NAME
f755810 is described below
commit f7558107d275ec4df317f7d505d68cf476662ecd
Author: Ian Young <ian at iay.org.uk>
AuthorDate: Fri Feb 2 14:46:25 2024 +0000
MDA-211 - Refactor getEntityID and ENTITYID_ATTRIB_NAME
https://shibboleth.atlassian.net/browse/MDA-211
---
.../metadata/dom/saml/ContactPersonFilterStage.java | 2 +-
.../metadata/dom/saml/DiscoFeedCollectionSerializer.java | 2 +-
.../dom/saml/DuplicateEntityInAggregateCheckingStage.java | 3 +--
.../dom/saml/EntityDescriptorItemIdPopulationStage.java | 4 +---
.../shibboleth/metadata/dom/saml/EntityFilterStage.java | 2 +-
.../metadata/dom/saml/EntityRoleFilterStage.java | 2 +-
.../metadata/dom/saml/RemoveOrganizationStage.java | 2 +-
.../shibboleth/metadata/dom/saml/SAMLMetadataSupport.java | 15 +++++++++++++++
.../saml/mdrpi/RegistrationAuthorityPopulationStage.java | 2 +-
.../metadata/dom/StringAttributeValidationStageTest.java | 2 +-
.../saml/EntityDescriptorItemIdPopulationStageTest.java | 12 ++++++------
11 files changed, 30 insertions(+), 18 deletions(-)
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/ContactPersonFilterStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/ContactPersonFilterStage.java
index 2f9b3d1..18d952a 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/ContactPersonFilterStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/ContactPersonFilterStage.java
@@ -170,7 +170,7 @@ public class ContactPersonFilterStage extends AbstractIteratingStage<Element> {
* @param entityDescriptor entity descriptor being processed
*/
protected void processEntityDescriptor(@Nonnull final Element entityDescriptor) {
- final String entityId = entityDescriptor.getAttributeNS(null, "entityID");
+ final String entityId = SAMLMetadataSupport.getEntityID(entityDescriptor);
final List<Element> contactPersons =
ElementSupport
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer.java
index bc47324..9084881 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/DiscoFeedCollectionSerializer.java
@@ -285,7 +285,7 @@ public class DiscoFeedCollectionSerializer extends AbstractInitializableComponen
ElementSupport.getChildElements(entity, SAMLMetadataSupport.IDP_SSO_DESCRIPTOR_NAME);
if (!idpDescriptors.isEmpty()) {
gen.writeStartObject();
- gen.write("entityID", entity.getAttributeNS(null, "entityID"));
+ gen.write("entityID", SAMLMetadataSupport.getEntityID(entity));
final var uiInfo = findFirstUIInfo(idpDescriptors);
writeDisplayNames(gen, entity, uiInfo);
if (uiInfo != null) {
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/DuplicateEntityInAggregateCheckingStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/DuplicateEntityInAggregateCheckingStage.java
index 3a0bb1d..e63fbcd 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/DuplicateEntityInAggregateCheckingStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/DuplicateEntityInAggregateCheckingStage.java
@@ -25,7 +25,6 @@ import net.shibboleth.metadata.ErrorStatus;
import net.shibboleth.metadata.Item;
import net.shibboleth.metadata.pipeline.AbstractIteratingStage;
import net.shibboleth.metadata.pipeline.StageProcessingException;
-import net.shibboleth.shared.xml.AttributeSupport;
/**
* A stage which detects duplication of <code>entityID</code> values in
@@ -60,7 +59,7 @@ public class DuplicateEntityInAggregateCheckingStage extends AbstractIteratingSt
for (int eIndex = 0; eIndex < count; eIndex++) {
final Element entity = (Element) eList.item(eIndex);
assert entity != null;
- final var id = AttributeSupport.getAttributeValue(entity, null, "entityID");
+ final var id = SAMLMetadataSupport.getEntityID(entity);
if (id != null) {
if (ids.contains(id)) {
// Report duplicate, but only once.
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage.java
index 55c9b39..f04e957 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStage.java
@@ -24,7 +24,6 @@ import net.shibboleth.metadata.ItemId;
import net.shibboleth.metadata.pipeline.AbstractIteratingStage;
import net.shibboleth.metadata.pipeline.StageProcessingException;
import net.shibboleth.shared.primitive.StringSupport;
-import net.shibboleth.shared.xml.AttributeSupport;
/**
* A stage which, for each EntityDescriptor collection element, adds an {@link ItemId}, with the entity's entity ID, to
@@ -51,8 +50,7 @@ public class EntityDescriptorItemIdPopulationStage extends AbstractIteratingStag
final Element metadataElement = item.unwrap();
if (SAMLMetadataSupport.isEntityDescriptor(metadataElement)) {
- final String entityId = StringSupport.trimOrNull(
- AttributeSupport.getAttributeValue(metadataElement, null, "entityID"));
+ final String entityId = StringSupport.trimOrNull(SAMLMetadataSupport.getEntityID(metadataElement));
if (entityId != null) {
item.getItemMetadata().put(new ItemId(entityId));
}
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityFilterStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityFilterStage.java
index 630d279..84a7f02 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityFilterStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityFilterStage.java
@@ -175,7 +175,7 @@ public class EntityFilterStage extends AbstractFilteringStage<Element> {
* @return true if the given entity descriptor itself should be filtered out, false otherwise
*/
protected boolean processEntityDescriptor(@Nonnull final Element entityDescriptor) {
- final String entityId = entityDescriptor.getAttributeNS(null, "entityID");
+ final String entityId = SAMLMetadataSupport.getEntityID(entityDescriptor);
// if we're whitelisting entities and this entity isn't in the list, kick it out
if (isWhitelistingEntities() && !getDesignatedEntities().contains(entityId)) {
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityRoleFilterStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityRoleFilterStage.java
index dea080c..3b9432d 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityRoleFilterStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/EntityRoleFilterStage.java
@@ -225,7 +225,7 @@ public class EntityRoleFilterStage extends AbstractFilteringStage<Element> {
return false;
}
- final String entityId = entityDescriptor.getAttributeNS(null, "entityID");
+ final String entityId = SAMLMetadataSupport.getEntityID(entityDescriptor);
assert entityId != null;
LOG.debug("{} pipeline stage filtering roles from EntityDescriptor {}", getId(), entityId);
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/RemoveOrganizationStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/RemoveOrganizationStage.java
index 95f2df2..3b7bf81 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/RemoveOrganizationStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/RemoveOrganizationStage.java
@@ -69,7 +69,7 @@ public class RemoveOrganizationStage extends AbstractIteratingStage<Element> {
* @param entityDescriptor entity descriptor being processed
*/
protected void processEntityDescriptor(@Nonnull final Element entityDescriptor) {
- final String entityId = entityDescriptor.getAttributeNS(null, "entityID");
+ final String entityId = SAMLMetadataSupport.getEntityID(entityDescriptor);
final List<Element> organizations =
ElementSupport.getChildElementsByTagNameNS(entityDescriptor, SAMLMetadataSupport.MD_NS, "Organization");
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/SAMLMetadataSupport.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/SAMLMetadataSupport.java
index e14ade3..8bc7a2d 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/SAMLMetadataSupport.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/SAMLMetadataSupport.java
@@ -26,6 +26,7 @@ import org.w3c.dom.Element;
import net.shibboleth.metadata.dom.ds.XMLDSIGSupport;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.xml.AttributeSupport;
import net.shibboleth.shared.xml.ElementSupport;
/** Helper class for dealing with SAML metadata. */
@@ -53,6 +54,9 @@ public final class SAMLMetadataSupport {
/** cacheDuration attribute name. */
public static final @Nonnull QName CACHE_DURATION_ATTRIB_NAME = new QName("cacheDuration");
+ /** entityID attribute name. */
+ public static final @Nonnull QName ENTITYID_ATTRIB_NAME = new QName("entityID");
+
/**
* QName of the RoleDescriptor element.
*
@@ -260,4 +264,15 @@ public final class SAMLMetadataSupport {
ElementSupport.appendChildElement(extensionsElement, extension);
}
+
+ /**
+ * Return the {@code entityID} attribute from an entity descriptor,
+ * or {@code null} if it doesn't have one.
+ *
+ * @param entity {@link Element} from which to extract the {@code entityID}
+ * @return the {@code entityID}, or {@code null}
+ */
+ public static @Nullable String getEntityID(final @Nonnull Element entity) {
+ return AttributeSupport.getAttributeValue(entity, ENTITYID_ATTRIB_NAME);
+ }
}
diff --git a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/mdrpi/RegistrationAuthorityPopulationStage.java b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/mdrpi/RegistrationAuthorityPopulationStage.java
index ebc69fc..d36ad0b 100644
--- a/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/mdrpi/RegistrationAuthorityPopulationStage.java
+++ b/mda-framework/src/main/java/net/shibboleth/metadata/dom/saml/mdrpi/RegistrationAuthorityPopulationStage.java
@@ -53,7 +53,7 @@ public class RegistrationAuthorityPopulationStage extends AbstractIteratingStage
// Extract registrationAuthority
final String attr = AttributeSupport.getAttributeValue(regInfo, null, "registrationAuthority");
if (attr == null) {
- final String eid = entity.getAttribute("entityID");
+ final String eid = SAMLMetadataSupport.getEntityID(entity);
metadata.put(new ErrorStatus(ensureId(), "RegistrationInfo for " + eid +
" did not have a registrationAuthority attribute"));
} else {
diff --git a/mda-framework/src/test/java/net/shibboleth/metadata/dom/StringAttributeValidationStageTest.java b/mda-framework/src/test/java/net/shibboleth/metadata/dom/StringAttributeValidationStageTest.java
index 0502817..60c5089 100644
--- a/mda-framework/src/test/java/net/shibboleth/metadata/dom/StringAttributeValidationStageTest.java
+++ b/mda-framework/src/test/java/net/shibboleth/metadata/dom/StringAttributeValidationStageTest.java
@@ -136,7 +136,7 @@ public class StringAttributeValidationStageTest extends BaseDOMTest {
elements.add(new QName(SAMLMetadataSupport.MD_NS, "AssertionConsumerService"));
elements.add(SAMLMetadataSupport.ORGANIZATIONNAME_NAME);
var attributes = new HashSet<QName>();
- attributes.add(new QName("entityID"));
+ attributes.add(SAMLMetadataSupport.ENTITYID_ATTRIB_NAME);
attributes.add(new QName("index"));
attributes.add(XMLConstants.XML_LANG_ATTRIB_NAME);
diff --git a/mda-framework/src/test/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStageTest.java b/mda-framework/src/test/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStageTest.java
index 786d559..2d2ff2f 100644
--- a/mda-framework/src/test/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStageTest.java
+++ b/mda-framework/src/test/java/net/shibboleth/metadata/dom/saml/EntityDescriptorItemIdPopulationStageTest.java
@@ -17,15 +17,15 @@ package net.shibboleth.metadata.dom.saml;
import java.util.ArrayList;
import java.util.List;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+import org.w3c.dom.Element;
+
import net.shibboleth.metadata.Item;
import net.shibboleth.metadata.ItemId;
import net.shibboleth.metadata.dom.DOMElementItem;
import net.shibboleth.metadata.dom.testing.BaseDOMTest;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-import org.w3c.dom.Element;
-
/** Unit test for {@link EntityDescriptorItemIdPopulationStage}. */
public class EntityDescriptorItemIdPopulationStageTest extends BaseDOMTest {
@@ -93,7 +93,7 @@ public class EntityDescriptorItemIdPopulationStageTest extends BaseDOMTest {
Assert.assertEquals(itemIds.size(), 1);
ItemId itemId = itemIds.get(0);
- Assert.assertEquals(itemId.getId(), entityDescriptor.getAttributeNS(null, "entityID"));
+ Assert.assertEquals(itemId.getId(), SAMLMetadataSupport.getEntityID(entityDescriptor));
}
/**
@@ -124,7 +124,7 @@ public class EntityDescriptorItemIdPopulationStageTest extends BaseDOMTest {
Assert.assertEquals(itemIds.size(), 1);
itemId = itemIds.get(0);
- Assert.assertEquals(itemId.getId(), entityDescriptor.getAttributeNS(null, "entityID"));
+ Assert.assertEquals(itemId.getId(), SAMLMetadataSupport.getEntityID(entityDescriptor));
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list