[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