[java-identity-provider] 02/06: IDP-1121 Remove legacy default template for TemplateAttributeDefinition

Rod Widdowson rdw at steadingsoftware.com
Wed Apr 3 02:29:46 EDT 2019


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=3df5a9f70e4ca5a211bdc03e200d4929c98b1828

commit 3df5a9f70e4ca5a211bdc03e200d4929c98b1828
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Apr 2 16:26:37 2019 +0100

    IDP-1121 Remove legacy default template for TemplateAttributeDefinition
    
    https://issues.shibboleth.net/jira/browse/IDP-1121
---
 .../ad/impl/TemplateAttributeDefinition.java       | 53 ++--------------------
 .../resolver/ad/impl/TemplateAttributeTest.java    |  3 +-
 .../ad/impl/TemplateAttributeDefinitionParser.java |  4 +-
 3 files changed, 6 insertions(+), 54 deletions(-)

diff --git a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeDefinition.java b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeDefinition.java
index 881f154..dcd0a05 100644
--- a/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeDefinition.java
+++ b/idp-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeDefinition.java
@@ -19,12 +19,10 @@ package net.shibboleth.idp.attribute.resolver.ad.impl;
 
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.Set;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -45,8 +43,6 @@ import net.shibboleth.idp.attribute.UnsupportedAttributeTypeException;
 import net.shibboleth.idp.attribute.resolver.AbstractAttributeDefinition;
 import net.shibboleth.idp.attribute.resolver.PluginDependencySupport;
 import net.shibboleth.idp.attribute.resolver.ResolutionException;
-import net.shibboleth.idp.attribute.resolver.ResolverAttributeDefinitionDependency;
-import net.shibboleth.idp.attribute.resolver.ResolverDataConnectorDependency;
 import net.shibboleth.idp.attribute.resolver.context.AttributeResolutionContext;
 import net.shibboleth.idp.attribute.resolver.context.AttributeResolverWorkContext;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
@@ -96,7 +92,7 @@ public class TemplateAttributeDefinition extends AbstractAttributeDefinition {
 
     /**
      * Get the source attribute IDs.
-     * 
+     * @deprecated This should be inferred from the environment, but we keep this for V4
      * @return the source attribute IDs
      */
     @Deprecated @Nonnull @Unmodifiable @NonnullElements public List<String> getSourceAttributes() {
@@ -106,6 +102,7 @@ public class TemplateAttributeDefinition extends AbstractAttributeDefinition {
     /**
      * Set the source attribute IDs.
      * 
+     * @deprecated This should be inferred from the environment, but we keep this for V4
      * @param newSourceAttributes the source attribute IDs
      */
     @Deprecated public void setSourceAttributes(@Nonnull @NullableElements final List<String> newSourceAttributes) {
@@ -180,57 +177,13 @@ public class TemplateAttributeDefinition extends AbstractAttributeDefinition {
             throw new ComponentInitializationException(getLogPrefix() + " no velocity engine was configured");
         }
     
-        checkSourceAttributes();
-    
         if (null == templateText) {
-            // V2 compatibility - define our own template
-            final StringBuffer defaultTemplate = new StringBuffer();
-            for (final String id : sourceAttributes) {
-                defaultTemplate.append("${").append(id).append("} ");
-            }
-            if (defaultTemplate.length() > 0) {
-                templateText = defaultTemplate.toString();
-            } else {
-                throw new ComponentInitializationException(getLogPrefix()
-                        + " no template and no source attributes were configured");
-            }
-            log.info("{} No template supplied. Default generated was '{}'", getLogPrefix(), templateText);
+            throw new ComponentInitializationException(getLogPrefix() + " no template provided");
         }
     
         template = Template.fromTemplate(engine, templateText);
     }
 
-    /**
-     * Check the provided source attributes against the provided dependencies.
-     */
-    private void checkSourceAttributes() {
-        if (sourceAttributes.isEmpty()) {
-            return;
-        }
-
-        final Set<String> dependencyAttributeNames = new HashSet<>(getAttributeDependencies().size() +
-                getDataConnectorDependencies().size());
-
-        for (final ResolverAttributeDefinitionDependency attrDep: getAttributeDependencies()) {
-            dependencyAttributeNames.add(attrDep.getDependencyPluginId());
-        }
-        
-        for (final ResolverDataConnectorDependency dcDep: getDataConnectorDependencies()) {
-            if (dcDep.isAllAttributes()) {
-                // No sensible check can be made if wild carding
-                return;
-            }
-            dependencyAttributeNames.addAll(dcDep.getAttributeNames());
-        }
-
-        
-        for (final String s: sourceAttributes) {
-            if (!dependencyAttributeNames.contains(s)) {
-                log.warn("{} Source Attribute {} is not provided as a dependency", getLogPrefix(),s);
-            }
-        }
-    }
-
     /** {@inheritDoc} */
     @Override @Nonnull protected IdPAttribute doAttributeDefinitionResolve(
             @Nonnull final AttributeResolutionContext resolutionContext,
diff --git a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeTest.java b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeTest.java
index 7b1458e..4dbc771 100644
--- a/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeTest.java
+++ b/idp-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/ad/impl/TemplateAttributeTest.java
@@ -178,8 +178,9 @@ public class TemplateAttributeTest {
             // OK
         }
         attr.setSourceAttributes(Collections.singletonList(TestSources.DEPENDS_ON_ATTRIBUTE_NAME_ATTR));
+        attr.setTemplateText( "${" + TestSources.DEPENDS_ON_ATTRIBUTE_NAME_ATTR + "}");
         attr.initialize();
-        Assert.assertEquals(attr.getTemplateText(), "${" + TestSources.DEPENDS_ON_ATTRIBUTE_NAME_ATTR + "} ");
+        Assert.assertEquals(attr.getTemplateText(), "${" + TestSources.DEPENDS_ON_ATTRIBUTE_NAME_ATTR + "}");
         Assert.assertEquals(attr.getSourceAttributes().get(0), TestSources.DEPENDS_ON_ATTRIBUTE_NAME_ATTR);
         Assert.assertEquals(attr.getSourceAttributes().size(), 1);
 
diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
index bc2e8d0..8c1aa7c 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/ad/impl/TemplateAttributeDefinitionParser.java
@@ -70,9 +70,7 @@ public class TemplateAttributeDefinitionParser extends BaseAttributeDefinitionPa
 
         final List<Element> templateElements = ElementSupport.getChildElements(config, TEMPLATE_ELEMENT_NAME_RESOLVER);
         if (null == templateElements || templateElements.isEmpty()) {
-            DeprecationSupport.warnOnce(ObjectType.ELEMENT, "Missing " + TEMPLATE_ELEMENT_NAME_RESOLVER.getLocalPart(),
-                    parserContext.getReaderContext().getResource().getDescription(),
-                    "by providing an explicit template");
+            log.error( "Missing " + TEMPLATE_ELEMENT_NAME_RESOLVER.getLocalPart() + " Element");
         } else {
             if (templateElements.size() > 1) {
                 log.warn("{} Too many <Template> elements, taking the first");

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list