[java-shib-metadata] branch main updated: Remove circularly-dependent metadata filter and ignore hanging test.
Scott Cantor
cantor.2 at osu.edu
Thu Jun 30 15:30:58 UTC 2022
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-shib-metadata.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-metadata.git;a=commit;h=7f6fbfc07aac030632dc9f4ab2ba81d3e9e10ab3
The following commit(s) were added to refs/heads/main by this push:
new 7f6fbfc07 Remove circularly-dependent metadata filter and ignore hanging test.
7f6fbfc07 is described below
commit 7f6fbfc07aac030632dc9f4ab2ba81d3e9e10ab3
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Jun 30 11:30:50 2022 -0400
Remove circularly-dependent metadata filter and ignore hanging test.
---
.../spring/metadata/MetadataNamespaceHandler.java | 2 -
.../PredicateFilterDirectionFactoryBean.java | 63 -----
.../metadata/filter/PredicateFilterParser.java | 312 ---------------------
.../spring/metadata/MetadataFailFastTest.java | 5 +
.../metadata/filter/PredicateFilterParserTest.java | 139 ---------
.../metadata/filter/predicateBadDirection.xml | 11 -
.../spring/metadata/filter/predicateCustomBean.xml | 23 --
.../spring/metadata/filter/predicateEmpty.xml | 9 -
.../spring/metadata/filter/predicateEntity.xml | 12 -
.../spring/metadata/filter/predicateGroup.xml | 12 -
.../spring/metadata/filter/predicateOr.xml | 22 --
.../spring/metadata/filter/predicateScript.xml | 12 -
.../metadata/filter/predicateScriptCustom.xml | 12 -
.../spring/metadata/filter/predicateScriptOr.xml | 15 -
.../spring/metadata/filter/predicateTag.xml | 18 --
15 files changed, 5 insertions(+), 662 deletions(-)
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/MetadataNamespaceHandler.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/MetadataNamespaceHandler.java
index 361405e42..ea8ae3801 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/MetadataNamespaceHandler.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/MetadataNamespaceHandler.java
@@ -29,7 +29,6 @@ import net.shibboleth.spring.metadata.filter.EntityRoleFilterParser;
import net.shibboleth.spring.metadata.filter.KeyAuthorityParser;
import net.shibboleth.spring.metadata.filter.NameIDFormatFilterParser;
import net.shibboleth.spring.metadata.filter.NodeProcessingParser;
-import net.shibboleth.spring.metadata.filter.PredicateFilterParser;
import net.shibboleth.spring.metadata.filter.RequiredValidUntilParser;
import net.shibboleth.spring.metadata.filter.SchemaValidationParser;
import net.shibboleth.spring.metadata.filter.SignatureValidationParser;
@@ -71,7 +70,6 @@ public class MetadataNamespaceHandler extends BaseSpringNamespaceHandler {
registerBeanDefinitionParser(EntityRoleFilterParser.TYPE_NAME, new EntityRoleFilterParser());
registerBeanDefinitionParser(DeprecatedEntityRoleFilterParser.TYPE_NAME,
new DeprecatedEntityRoleFilterParser());
- registerBeanDefinitionParser(PredicateFilterParser.TYPE_NAME, new PredicateFilterParser());
registerBeanDefinitionParser(SchemaValidationParser.TYPE_NAME, new SchemaValidationParser());
registerBeanDefinitionParser(SignatureValidationParser.TYPE_NAME, new SignatureValidationParser());
registerBeanDefinitionParser(NodeProcessingParser.TYPE_NAME, new NodeProcessingParser());
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterDirectionFactoryBean.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterDirectionFactoryBean.java
deleted file mode 100644
index aaf1bf678..000000000
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterDirectionFactoryBean.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.spring.metadata.filter;
-
-import javax.annotation.Nullable;
-
-import org.opensaml.saml.metadata.resolver.filter.impl.PredicateFilter;
-import org.opensaml.saml.metadata.resolver.filter.impl.PredicateFilter.Direction;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.config.AbstractFactoryBean;
-
-/**
- * Factory bean allow property replacements of the direction going in to a {@link PredicateFilter}.
- */
-public class PredicateFilterDirectionFactoryBean extends AbstractFactoryBean<PredicateFilter.Direction> {
-
- /** What we want to set the value from this should be "exclude" or "include".*/
- @Nullable private final String value;
-
- /**
- * Constructor.
- * @param what the value to set
- */
- public PredicateFilterDirectionFactoryBean(@Nullable final String what) {
- value = what;
- }
-
- /** {@inheritDoc} */
- @Override
- public Class<?> getObjectType() {
- return PredicateFilter.Direction.class;
- }
-
- /** {@inheritDoc} */
- @Override
- protected Direction createInstance() throws Exception {
- if (value == null) {
- throw new BeanCreationException("Predicate filter requires 'direction' attribute");
- } else if ("exclude".equals(value)) {
- return PredicateFilter.Direction.EXCLUDE;
- } else if ("include".equals(value)) {
- return PredicateFilter.Direction.INCLUDE;
- } else {
- throw new BeanCreationException("Predicate filter direction must be 'include' or 'exclude'");
- }
- }
-
-}
\ No newline at end of file
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java
deleted file mode 100644
index 1228fc953..000000000
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/filter/PredicateFilterParser.java
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.spring.metadata.filter;
-
-import java.util.List;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import javax.xml.namespace.QName;
-
-import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate;
-import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate.Candidate;
-import org.opensaml.saml.common.profile.logic.EntityGroupNamePredicate;
-import org.opensaml.saml.common.profile.logic.EntityIdPredicate;
-import org.opensaml.saml.metadata.resolver.filter.impl.PredicateFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionBuilder;
-import org.springframework.beans.factory.support.ManagedList;
-import org.springframework.beans.factory.xml.ParserContext;
-import org.w3c.dom.Element;
-
-import net.shibboleth.ext.spring.util.AbstractCustomBeanDefinitionParser;
-import net.shibboleth.ext.spring.util.SpringSupport;
-import net.shibboleth.idp.attribute.logic.MappedEntityAttributesPredicate;
-import net.shibboleth.spring.ScriptTypeBeanParser;
-import net.shibboleth.spring.metadata.AbstractMetadataProviderParser;
-import net.shibboleth.utilities.java.support.logic.PredicateSupport;
-import net.shibboleth.utilities.java.support.logic.ScriptedPredicate;
-import net.shibboleth.utilities.java.support.primitive.StringSupport;
-import net.shibboleth.utilities.java.support.xml.ElementSupport;
-
-/**
- * Parser for a <Predicate> filter.
- */
-public class PredicateFilterParser extends AbstractCustomBeanDefinitionParser {
-
- /** Element name. */
- @Nonnull public static final QName TYPE_NAME =
- new QName(AbstractMetadataProviderParser.METADATA_NAMESPACE, "Predicate");
-
- /** Class logger. */
- @Nonnull private final Logger log = LoggerFactory.getLogger(PredicateFilterParser.class);
-
- /** {@inheritDoc} */
- @Override protected Class<?> getBeanClass(final Element element) {
- return PredicateFilter.class;
- }
-
- /** {@inheritDoc} */
- @Override protected void doParse(final Element element, final ParserContext parserContext,
- final BeanDefinitionBuilder builder) {
-
- if (element.hasAttributeNS(null, "removeEmptyEntitiesDescriptors")) {
- builder.addPropertyValue("removeEmptyEntitiesDescriptors", SpringSupport.getStringValueAsBoolean(
- element.getAttributeNS(null, "removeEmptyEntitiesDescriptors")));
- }
-
- final BeanDefinitionBuilder directionBuilder =
- BeanDefinitionBuilder.genericBeanDefinition(PredicateFilterDirectionFactoryBean.class);
- directionBuilder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, "direction")));
- builder.addConstructorArgValue(directionBuilder.getBeanDefinition());
-
- if (element.hasAttributeNS(null, "conditionRef")) {
- log.info("Found conditionRef attribute, ignoring embedded Entity/Group/Tag elements");
- builder.addConstructorArgReference(StringSupport.trimOrNull(element.getAttributeNS(null, "conditionRef")));
- } else {
- builder.addConstructorArgValue(parseCustomElements(element));
- }
- }
-
-// Checkstyle: CyclomaticComplexity OFF
- /**
- * Parser custom element content into a {@link java.util.function.Predicate} to pass to the filter constructor.
- *
- * @param element root element to parse
- *
- * @return the bean definition of the Predicate to install
- */
- @Nonnull public BeanDefinition parseCustomElements(@Nonnull final Element element) {
-
- // Track which predicates have to be built.
- final BeanDefinitionBuilder entityIdPredicateBuilder = parseEntityPredicate(element);
- final BeanDefinitionBuilder groupPredicateBuilder = parseGroupPredicate(element);
- final BeanDefinitionBuilder tagPredicateBuilder = parseTagPredicate(element);
- final BeanDefinitionBuilder mappedTagPredicateBuilder = parseMappedTagPredicate(element);
- final BeanDefinitionBuilder scriptPredicateBuilder = parseScripts(element);
-
- int count = 0;
- if (entityIdPredicateBuilder != null) {
- count++;
- }
- if (groupPredicateBuilder != null) {
- count++;
- }
- if (tagPredicateBuilder != null) {
- count++;
- }
- if (mappedTagPredicateBuilder != null) {
- count++;
- }
- if (scriptPredicateBuilder != null) {
- count++;
- }
-
- if (count == 0) {
- throw new BeanCreationException("No Entity, Group, Tag, or ConditionScript element found");
- } else if (count == 1) {
- if (entityIdPredicateBuilder != null) {
- return entityIdPredicateBuilder.getBeanDefinition();
- } else if (groupPredicateBuilder != null) {
- return groupPredicateBuilder.getBeanDefinition();
- } else if (tagPredicateBuilder != null) {
- return tagPredicateBuilder.getBeanDefinition();
- } else if (mappedTagPredicateBuilder != null) {
- return mappedTagPredicateBuilder.getBeanDefinition();
- } else {
- return scriptPredicateBuilder.getBeanDefinition();
- }
- } else {
- final BeanDefinitionBuilder orBuilder =
- BeanDefinitionBuilder.rootBeanDefinition(PredicateSupport.class, "or");
- final ManagedList<BeanDefinition> managedList = new ManagedList<>(count);
- if (entityIdPredicateBuilder != null) {
- managedList.add(entityIdPredicateBuilder.getBeanDefinition());
- }
- if (groupPredicateBuilder != null) {
- managedList.add(groupPredicateBuilder.getBeanDefinition());
- }
- if (tagPredicateBuilder != null) {
- managedList.add(tagPredicateBuilder.getBeanDefinition());
- }
- if (mappedTagPredicateBuilder != null) {
- managedList.add(mappedTagPredicateBuilder.getBeanDefinition());
- }
- if (scriptPredicateBuilder != null) {
- managedList.add(scriptPredicateBuilder.getBeanDefinition());
- }
- orBuilder.addConstructorArgValue(managedList);
- return orBuilder.getBeanDefinition();
- }
- }
-
-// Checkstyle: CyclomaticComplexity ON
-
- /**
- * Parse Entity elements into a builder for an {@link EntityIdPredicate}.
- *
- * @param element root element to parse under
- *
- * @return builder for the predicate, or null if none needed
- */
- @Nullable public BeanDefinitionBuilder parseEntityPredicate(@Nonnull final Element element) {
- final List<Element> entityList =
- ElementSupport.getChildElementsByTagNameNS(element, AbstractMetadataProviderParser.METADATA_NAMESPACE,
- "Entity");
- if (!entityList.isEmpty()) {
- final ManagedList<String> managedEntityList = SpringSupport.getElementTextContentAsManagedList(entityList);
- final BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(EntityIdPredicate.class);
- builder.addConstructorArgValue(managedEntityList);
- return builder;
- }
-
- return null;
- }
-
- /**
- * Parse Group elements into a builder for an {@link EntityGroupNamePredicate}.
- *
- * @param element root element to parse under
- *
- * @return builder for the predicate, or null if none needed
- */
- @Nullable public BeanDefinitionBuilder parseGroupPredicate(@Nonnull final Element element) {
-
- final List<Element> groupList =
- ElementSupport.getChildElementsByTagNameNS(element, AbstractMetadataProviderParser.METADATA_NAMESPACE,
- "Group");
- if (!groupList.isEmpty()) {
- final ManagedList<String> managedGroupList = SpringSupport.getElementTextContentAsManagedList(groupList);
- final BeanDefinitionBuilder builder =
- BeanDefinitionBuilder.genericBeanDefinition(EntityGroupNamePredicate.class);
- builder.addConstructorArgValue(managedGroupList);
- return builder;
- }
-
- return null;
- }
-
- /**
- * Parse Tag elements into a builder for an {@link EntityAttributesPredicate}.
- *
- * @param element root element to parse under
- *
- * @return builder for the predicate, or null if none needed
- */
- @Nullable public BeanDefinitionBuilder parseTagPredicate(@Nonnull final Element element) {
- final List<Element> tagList =
- ElementSupport.getChildElementsByTagNameNS(element, AbstractMetadataProviderParser.METADATA_NAMESPACE,
- "Tag");
- if (!tagList.isEmpty()) {
- final ManagedList<BeanDefinition> managedTagList = new ManagedList<>(tagList.size());
- for (final Element tag : tagList) {
- final BeanDefinitionBuilder tagBuilder = BeanDefinitionBuilder.genericBeanDefinition(Candidate.class);
- tagBuilder.addConstructorArgValue(StringSupport.trimOrNull(tag.getAttributeNS(null, "name")));
- tagBuilder.addConstructorArgValue(StringSupport.trimOrNull(tag.getAttributeNS(null, "nameFormat")));
- final List<Element> valueList =
- ElementSupport.getChildElementsByTagNameNS(tag,
- AbstractMetadataProviderParser.METADATA_NAMESPACE, "Value");
- if (!valueList.isEmpty()) {
- final ManagedList<String> managedValueList =
- SpringSupport.getElementTextContentAsManagedList(valueList);
- tagBuilder.addPropertyValue("values", managedValueList);
- }
- managedTagList.add(tagBuilder.getBeanDefinition());
- }
- final BeanDefinitionBuilder builder =
- BeanDefinitionBuilder.genericBeanDefinition(EntityAttributesPredicate.class);
- builder.addConstructorArgValue(managedTagList);
- builder.addConstructorArgValue(SpringSupport.getStringValueAsBoolean(element.getAttributeNS(null, "trim")));
- return builder;
- }
-
- return null;
- }
-
- /**
- * Parse MappedTag elements into a builder for an {@link MappedEntityAttributesPredicate}.
- *
- * @param element root element to parse under
- *
- * @return builder for the predicate, or null if none needed
- */
- @Nullable public BeanDefinitionBuilder parseMappedTagPredicate(@Nonnull final Element element) {
- final List<Element> tagList =
- ElementSupport.getChildElementsByTagNameNS(element, AbstractMetadataProviderParser.METADATA_NAMESPACE,
- "MappedTag");
- if (!tagList.isEmpty()) {
- final ManagedList<BeanDefinition> managedTagList = new ManagedList<>(tagList.size());
- for (final Element tag : tagList) {
- final BeanDefinitionBuilder tagBuilder = BeanDefinitionBuilder.genericBeanDefinition(Candidate.class);
- tagBuilder.addConstructorArgValue(StringSupport.trimOrNull(tag.getAttributeNS(null, "name")));
- final List<Element> valueList =
- ElementSupport.getChildElementsByTagNameNS(tag,
- AbstractMetadataProviderParser.METADATA_NAMESPACE, "Value");
- if (!valueList.isEmpty()) {
- final ManagedList<String> managedValueList =
- SpringSupport.getElementTextContentAsManagedList(valueList);
- tagBuilder.addPropertyValue("values", managedValueList);
- }
- managedTagList.add(tagBuilder.getBeanDefinition());
- }
- final BeanDefinitionBuilder builder =
- BeanDefinitionBuilder.genericBeanDefinition(MappedEntityAttributesPredicate.class);
- builder.addConstructorArgValue(managedTagList);
- builder.addConstructorArgValue(StringSupport.trimOrNull(element.getAttributeNS(null, "trim")));
- return builder;
- }
-
- return null;
- }
-
- /**
- * Parse ConditionScript elements into a builder, wrapped in an OR as necessary.
- *
- * @param element root element to parse under
- *
- * @return builder for the predicate, or null if none needed
- */
- @Nullable public BeanDefinitionBuilder parseScripts(@Nonnull final Element element) {
- final List<Element> scriptList =
- ElementSupport.getChildElementsByTagNameNS(element, AbstractMetadataProviderParser.METADATA_NAMESPACE,
- "ConditionScript");
- if (scriptList.isEmpty()) {
- return null;
- } else if (scriptList.size() == 1) {
- return ScriptTypeBeanParser.parseScriptType(ScriptedPredicate.class, scriptList.get(0));
- } else {
- final BeanDefinitionBuilder orBuilder =
- BeanDefinitionBuilder.rootBeanDefinition(PredicateSupport.class, "or");
- final ManagedList<BeanDefinition> managedList = new ManagedList<>(scriptList.size());
- for (final Element e : scriptList) {
- managedList.add(ScriptTypeBeanParser.parseScriptType(ScriptedPredicate.class, e).getBeanDefinition());
- }
- orBuilder.addConstructorArgValue(managedList);
- return orBuilder;
- }
- }
-
- /** {@inheritDoc} */
- @Override protected boolean shouldGenerateId() {
- return true;
- }
-
-}
\ No newline at end of file
diff --git a/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/MetadataFailFastTest.java b/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/MetadataFailFastTest.java
index e9a9a9007..d5b91fbc0 100644
--- a/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/MetadataFailFastTest.java
+++ b/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/MetadataFailFastTest.java
@@ -25,6 +25,7 @@ import java.util.List;
import org.opensaml.saml.metadata.resolver.MetadataResolver;
import org.springframework.mock.env.MockPropertySource;
+import org.testng.annotations.Ignore;
import org.testng.annotations.Test;
import net.shibboleth.spring.testing.AbstractFailFastTest;
@@ -32,6 +33,10 @@ import net.shibboleth.utilities.java.support.collection.Pair;
import net.shibboleth.utilities.java.support.service.ReloadableService;
import net.shibboleth.utilities.java.support.service.ServiceableComponent;
+/**
+ * This test "works" but is hanging the test process so not shutting down cleanly.
+ */
+ at Ignore
@SuppressWarnings({"unchecked", "javadoc"})
public class MetadataFailFastTest extends AbstractFailFastTest {
private static int uniquifier;
diff --git a/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/filter/PredicateFilterParserTest.java b/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/filter/PredicateFilterParserTest.java
deleted file mode 100644
index 13bafa1e0..000000000
--- a/shib-metadata-spring/src/test/java/net/shibboleth/spring/metadata/filter/PredicateFilterParserTest.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Licensed to the University Corporation for Advanced Internet Development,
- * Inc. (UCAID) under one or more contributor license agreements. See the
- * NOTICE file distributed with this work for additional information regarding
- * copyright ownership. The UCAID licenses this file to You under the Apache
- * License, Version 2.0 (the "License"); you may not use this file except in
- * compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package net.shibboleth.spring.metadata.filter;
-
-import java.io.IOException;
-
-import org.opensaml.core.criterion.EntityIdCriterion;
-import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate;
-import org.opensaml.saml.common.profile.logic.EntityAttributesPredicate.Candidate;
-import org.opensaml.saml.common.profile.logic.EntityGroupNamePredicate;
-import org.opensaml.saml.common.profile.logic.EntityIdPredicate;
-import org.opensaml.saml.metadata.resolver.MetadataResolver;
-import org.opensaml.saml.metadata.resolver.filter.impl.PredicateFilter;
-import org.opensaml.saml.metadata.resolver.filter.impl.PredicateFilter.Direction;
-import org.opensaml.saml.saml2.metadata.EntityDescriptor;
-import org.springframework.beans.factory.BeanCreationException;
-import org.springframework.beans.factory.BeanDefinitionStoreException;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import net.shibboleth.spring.metadata.AbstractMetadataParserTest;
-import net.shibboleth.utilities.java.support.logic.ScriptedPredicate;
-import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
-
-/**
- * Test for parser for PredicateFilter filter.
- */
- at SuppressWarnings("javadoc")
-public class PredicateFilterParserTest extends AbstractMetadataParserTest {
-
- @Test(expectedExceptions=BeanDefinitionStoreException.class)
- public void empty() throws IOException {
- getBean(PredicateFilter.class, "filter/predicateEmpty.xml");
- }
-
- @Test(expectedExceptions=BeanCreationException.class)
- public void badDirection() throws IOException {
- getBean(PredicateFilter.class, "filter/predicateBadDirection.xml");
- }
-
- @Test
- public void entity() throws IOException {
- final PredicateFilter filter = getBean(PredicateFilter.class, "filter/predicateEntity.xml");
- Assert.assertNotNull(filter);
- Assert.assertEquals(filter.getDirection(), Direction.INCLUDE);
-
- final EntityIdPredicate condition = (EntityIdPredicate) filter.getCondition();
- Assert.assertEquals(condition.getEntityIds().size(), 3);
- Assert.assertTrue(condition.getEntityIds().contains("urn:bar"));
- }
-
- @Test
- public void group() throws IOException {
- final PredicateFilter filter = getBean(PredicateFilter.class, "filter/predicateGroup.xml");
- Assert.assertNotNull(filter);
- Assert.assertEquals(filter.getDirection(), Direction.INCLUDE);
-
- final EntityGroupNamePredicate condition = (EntityGroupNamePredicate) filter.getCondition();
- Assert.assertEquals(condition.getGroupNames().size(), 3);
- Assert.assertTrue(condition.getGroupNames().contains("urn:bar"));
- }
-
- @Test
- public void tag() throws IOException {
- final PredicateFilter filter = getBean(PredicateFilter.class, "filter/predicateTag.xml");
- Assert.assertNotNull(filter);
- Assert.assertEquals(filter.getDirection(), Direction.EXCLUDE);
-
- final EntityAttributesPredicate condition = (EntityAttributesPredicate) filter.getCondition();
- Assert.assertTrue(condition.getTrimTags());
- Assert.assertEquals(condition.getCandidates().size(), 2);
-
- final Candidate c1 = (Candidate) condition.getCandidates().toArray()[0];
- final Candidate c2 = (Candidate) condition.getCandidates().toArray()[1];
- Assert.assertEquals(c1.getValues().size(), 2);
- Assert.assertEquals(c2.getValues().size(), 2);
- if (c1.getName().equals("urn:foo")) {
- Assert.assertNull(c1.getNameFormat());
- Assert.assertEquals(c2.getNameFormat(), "foo");
- } else {
- Assert.assertNull(c2.getNameFormat());
- Assert.assertEquals(c1.getNameFormat(), "foo");
- }
- }
-
- @Test
- public void script() throws IOException {
- final PredicateFilter filter = getBean(PredicateFilter.class, "filter/predicateScript.xml");
- Assert.assertNotNull(filter);
- Assert.assertEquals(filter.getDirection(), Direction.INCLUDE);
-
- Assert.assertTrue(filter.getCondition() instanceof ScriptedPredicate);
- Assert.assertTrue(filter.getCondition().test(null));
- }
-
- @Test
- public void script2() throws IOException {
- final PredicateFilter filter = getBean(PredicateFilter.class, "filter/predicateScriptOr.xml");
- Assert.assertNotNull(filter);
- Assert.assertEquals(filter.getDirection(), Direction.INCLUDE);
- Assert.assertTrue(filter.getCondition().test(null));
- }
-
- @Test
- public void or() throws IOException {
- final PredicateFilter filter = getBean(PredicateFilter.class, "filter/predicateOr.xml");
- Assert.assertNotNull(filter);
- Assert.assertEquals(filter.getDirection(), Direction.EXCLUDE);
- Assert.assertNotNull(filter.getCondition());
- Assert.assertFalse(filter.getCondition().test(null));
- }
-
- @Test
- public void custom() throws IOException, ResolverException {
- final PredicateFilter filter = getBean(PredicateFilter.class, "filter/predicateScriptCustom.xml", "filter/predicateCustomBean.xml");
- Assert.assertNotNull(filter);
- Assert.assertEquals(filter.getDirection(), Direction.INCLUDE);
- // hack!
- MetadataResolver resolver = getBean(MetadataResolver.class, "filter/entityTrueResolver.xml");
- Iterable<EntityDescriptor> entities = resolver.resolve(new CriteriaSet(new EntityIdCriterion("https://sp.example.org/sp/TRUE")));
- Assert.assertTrue(filter.getCondition().test(entities.iterator().next()));
- }
-}
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateBadDirection.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateBadDirection.xml
deleted file mode 100644
index 41603c4b5..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateBadDirection.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataFilter xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- xsi:type="metadata:Predicate" direction="foo">
-
- <metadata:Entity>urn:foo</metadata:Entity>
-
-</metadata:MetadataFilter>
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateCustomBean.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateCustomBean.xml
deleted file mode 100644
index c6271868c..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateCustomBean.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:webflow="http://www.springframework.org/schema/webflow-config"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:c="http://www.springframework.org/schema/c"
- xmlns:util="http://www.springframework.org/schema/util"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
-
- <bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer"
- p:placeholderPrefix="%{" p:placeholderSuffix="}" />
-
- <util:constant id="myTRUE" static-field="java.lang.Boolean.TRUE" />
- <util:constant id="myFALSE" static-field="java.lang.Boolean.FALSE" />
-
-
- <util:map id="myCustomBean">
- <entry key="https://sp.example.org/sp/TRUE" value-ref="myTRUE" />
- <entry key="https://sp.example.org/sp/FALSE" value-ref="myFALSE" />
- </util:map>
-</beans>
\ No newline at end of file
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateEmpty.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateEmpty.xml
deleted file mode 100644
index 5472106ed..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateEmpty.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataFilter xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- xsi:type="metadata:Predicate" direction="include" removeEmptyEntitiesDescriptors="false">
-
-</metadata:MetadataFilter>
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateEntity.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateEntity.xml
deleted file mode 100644
index 432a03a1c..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateEntity.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataFilter xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- xsi:type="metadata:Predicate" direction="include" removeEmptyEntitiesDescriptors="false">
-
- <metadata:Entity>urn:foo</metadata:Entity>
- <metadata:Entity>urn:bar</metadata:Entity>
- <metadata:Entity>urn:baz</metadata:Entity>
-</metadata:MetadataFilter>
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateGroup.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateGroup.xml
deleted file mode 100644
index c602795f9..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateGroup.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataFilter xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- xsi:type="metadata:Predicate" direction="include" removeEmptyEntitiesDescriptors="false">
-
- <metadata:Group>urn:foo</metadata:Group>
- <metadata:Group>urn:bar</metadata:Group>
- <metadata:Group>urn:baz</metadata:Group>
-</metadata:MetadataFilter>
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateOr.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateOr.xml
deleted file mode 100644
index 1b1398f91..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateOr.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataFilter xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- xsi:type="metadata:Predicate" direction="exclude" removeEmptyEntitiesDescriptors="false" trim="true">
-
- <metadata:Entity>urn:foo</metadata:Entity>
-
- <metadata:Group>urn:bar</metadata:Group>
-
- <metadata:MappedTag name="urn:foo">
- <metadata:Value>bar</metadata:Value>
- <metadata:Value>baz</metadata:Value>
- </metadata:MappedTag>
-
- <metadata:Tag name="urn:fob" nameFormat="foo">
- <metadata:Value>bat</metadata:Value>
- <metadata:Value>baf</metadata:Value>
- </metadata:Tag>
-</metadata:MetadataFilter>
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateScript.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateScript.xml
deleted file mode 100644
index 14713e6a4..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateScript.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataFilter xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- xsi:type="metadata:Predicate" direction="include" removeEmptyEntitiesDescriptors="false">
-
- <metadata:ConditionScript>
- <metadata:Script>true</metadata:Script>
- </metadata:ConditionScript>
-</metadata:MetadataFilter>
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateScriptCustom.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateScriptCustom.xml
deleted file mode 100644
index 50ee72a00..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateScriptCustom.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<MetadataFilter
- xmlns="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- xsi:type="Predicate" direction="include" removeEmptyEntitiesDescriptors="false">
-
- <ConditionScript customObjectRef="myCustomBean">
- <Script>custom.get(input.getEntityID());</Script>
- </ConditionScript>
-</MetadataFilter>
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateScriptOr.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateScriptOr.xml
deleted file mode 100644
index de6d0a30d..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateScriptOr.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataFilter xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- xsi:type="metadata:Predicate" direction="include" removeEmptyEntitiesDescriptors="false">
-
- <metadata:ConditionScript>
- <metadata:Script>false</metadata:Script>
- </metadata:ConditionScript>
- <metadata:ConditionScript>
- <metadata:Script>true</metadata:Script>
- </metadata:ConditionScript>
-</metadata:MetadataFilter>
diff --git a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateTag.xml b/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateTag.xml
deleted file mode 100644
index a5b00564f..000000000
--- a/shib-metadata-spring/src/test/resources/net/shibboleth/spring/metadata/filter/predicateTag.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<metadata:MetadataFilter xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
- xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
- urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
-
- xsi:type="metadata:Predicate" direction="exclude" removeEmptyEntitiesDescriptors="false" trim="true">
-
- <metadata:Tag name="urn:foo">
- <metadata:Value>bar</metadata:Value>
- <metadata:Value>baz</metadata:Value>
- </metadata:Tag>
-
- <metadata:Tag name="urn:fob" nameFormat="foo">
- <metadata:Value>bat</metadata:Value>
- <metadata:Value>baf</metadata:Value>
- </metadata:Tag>
-</metadata:MetadataFilter>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list