[java-shib-attribute] 02/06: JSATTR-5 Remove Deprecations https://shibboleth.atlassian.net/browse/JSATTR-5

Rod Widdowson rdw at steadingsoftware.com
Thu Nov 24 11:02:02 UTC 2022


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

rdw pushed a commit to branch main
in repository java-shib-attribute.

View the commit online:
http://git.shibboleth.net/view/?p=java-shib-attribute.git;a=commit;h=a04b6236389cda315604b0251daec0167ef374c5

commit a04b6236389cda315604b0251daec0167ef374c5
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon Nov 21 16:53:17 2022 +0000

    JSATTR-5 Remove Deprecations
    https://shibboleth.atlassian.net/browse/JSATTR-5
    
    Expunge exportAllAttributes from the data connectors
---
 .../attribute/resolver/AbstractDataConnector.java  | 21 ---------------------
 .../idp/attribute/resolver/DataConnector.java      | 10 ----------
 .../attribute/resolver/ResolvedDataConnector.java  | 10 ----------
 .../resolver/AbstractDataConnectorTest.java        |  4 ----
 .../resolver/impl/AttributeResolverImpl.java       |  8 +++-----
 .../resolver/impl/AttributeResolverImplTest.java   | 22 ++++++++--------------
 .../spring/dc/AbstractDataConnectorParser.java     | 17 +----------------
 .../schema/shibboleth-attribute-resolver.xsd       |  5 -----
 .../dc/http/impl/HTTPDataConnectorParserTest.java  |  2 --
 .../dc/impl/ComputedIdDataConnectorParserTest.java |  4 +---
 .../dc/impl/StaticDataConnectorParserTest.java     |  6 +-----
 .../spring/dc/resolver/staticAttributesRef.xml     |  1 -
 12 files changed, 14 insertions(+), 96 deletions(-)

diff --git a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java
index 18ad04a41..8cf77c452 100644
--- a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java
+++ b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnector.java
@@ -63,10 +63,6 @@ public abstract class AbstractDataConnector extends AbstractResolverPlugin<Map<S
     /** How long to wait until we declare the connector live again. */
     @Nonnull private Duration noRetryDelay;
 
-    /** Do we release all attributes?. */
-    @Deprecated(since = "4.1.0", forRemoval = true)
-    private boolean exportAllAttributes;
-
     /** Which named attributes do we release?. */
     @Nonnull @NonnullElements @Unmodifiable private Collection<String> exportAttributes;
 
@@ -149,23 +145,6 @@ public abstract class AbstractDataConnector extends AbstractResolverPlugin<Map<S
         return noRetryDelay;
     }
 
-    /**
-     * Set whether we export all attributes.
-     *
-     * @param what whether we export all attributes
-     */
-    @Deprecated(since = "4.1.0", forRemoval = true)
-    public void setExportAllAttributes(final boolean what) {
-        checkSetterPreconditions();
-        exportAllAttributes = what;
-    }
-
-    /** {@inheritDoc} */
-    @Deprecated(since = "4.1.0", forRemoval = true)
-    public boolean isExportAllAttributes() {
-        return exportAllAttributes;
-    }
-
     /**
      *  Sets the list of attribute names to export during resolution.
      *
diff --git a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/DataConnector.java b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/DataConnector.java
index df25bcddb..4179b71f2 100644
--- a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/DataConnector.java
+++ b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/DataConnector.java
@@ -73,16 +73,6 @@ public interface DataConnector extends ResolverPlugin<Map<String, IdPAttribute>>
      */
     @Nullable String getFailoverDataConnectorId();
 
-    /**
-     * Gets whether we export all attributes during resolution.
-     * <p>
-     * If this returns false then {@link #getExportAttributes()} returns the
-     * list of attributes to return.
-     *
-     * @return whether we export all attributes
-     */
-    boolean isExportAllAttributes();
-
     /**
      * Gets the list of attribute names to export during resolution.
      *
diff --git a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnector.java b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnector.java
index 82f2ce247..f5772a743 100644
--- a/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnector.java
+++ b/shib-attribute-resolver-api/src/main/java/net/shibboleth/idp/attribute/resolver/ResolvedDataConnector.java
@@ -130,16 +130,6 @@ public final class ResolvedDataConnector extends AbstractDataConnector {
         return resolvedConnector.toString();
     }
 
-    /** {@inheritDoc} */
-    @Override public void setExportAllAttributes(final boolean what) {
-        checkSetterPreconditions();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean isExportAllAttributes() {
-        return resolvedConnector.isExportAllAttributes();
-    }
-
     /** {@inheritDoc} */
     @Override public void setExportAttributes(@Nonnull final Collection<String> what) {
         checkSetterPreconditions();
diff --git a/shib-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java b/shib-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java
index b108a7dde..6d800f173 100644
--- a/shib-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java
+++ b/shib-attribute-resolver-api/src/test/java/net/shibboleth/idp/attribute/resolver/AbstractDataConnectorTest.java
@@ -18,7 +18,6 @@
 package net.shibboleth.idp.attribute.resolver;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertNull;
 import static org.testng.Assert.assertTrue;
@@ -98,10 +97,7 @@ public class AbstractDataConnectorTest {
 
     @Test public void testExports() {
         final AbstractDataConnector connector = new MockBaseDataConnector("foo", null);
-        assertFalse(connector.isExportAllAttributes());
         assertTrue(connector.getExportAttributes().isEmpty());
-        connector.setExportAllAttributes(true);
-        assertTrue(connector.isExportAllAttributes());
         connector.setExportAttributes(List.of("bar", "foo", "bar", "foo"));
         assertEquals(connector.getExportAttributes().size(), 2);
     }
diff --git a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
index f8d2c4fa6..c5df50535 100644
--- a/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
+++ b/shib-attribute-resolver-impl/src/main/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImpl.java
@@ -211,8 +211,7 @@ public class AttributeResolverImpl extends AbstractServiceableComponent<Attribut
             boolean hasExportingDataConnector = false;
 
             for (final Entry<String, DataConnector> dataConnectorEntry : dataConnectors.entrySet()) {
-                if (dataConnectorEntry.getValue().isExportAllAttributes() ||
-                        !dataConnectorEntry.getValue().getExportAttributes().isEmpty()) {
+                if (!dataConnectorEntry.getValue().getExportAttributes().isEmpty()) {
                     hasExportingDataConnector = true;
                     resolveDataConnector(dataConnectorEntry.getKey(), resolutionContext);
                 }
@@ -524,7 +523,7 @@ public class AttributeResolverImpl extends AbstractServiceableComponent<Attribut
 
         for (final ResolvedDataConnector dataConnector: workContext.getResolvedDataConnectors().values()) {
 
-            if (!dataConnector.isExportAllAttributes() && dataConnector.getExportAttributes().isEmpty()) {
+            if (dataConnector.getExportAttributes().isEmpty()) {
                 continue;
             }
 
@@ -534,8 +533,7 @@ public class AttributeResolverImpl extends AbstractServiceableComponent<Attribut
             }
 
            for (final IdPAttribute attribute:resolved.values()) {
-                if (!dataConnector.isExportAllAttributes() &&
-                    !dataConnector.getExportAttributes().contains(attribute.getId())) {
+                if (!dataConnector.getExportAttributes().contains(attribute.getId())) {
                     continue;
                 }
                 if (resolvedAttributes.get(attribute.getId()) != null) {
diff --git a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
index 2de98237a..f18baf1c5 100644
--- a/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
+++ b/shib-attribute-resolver-impl/src/test/java/net/shibboleth/idp/attribute/resolver/impl/AttributeResolverImplTest.java
@@ -190,7 +190,6 @@ public class AttributeResolverImplTest {
         assertEquals(context.getResolvedIdPAttributes().get("ad1"), attribute);
     }
 
-    @SuppressWarnings("removal")
     @Test public void resolveWithExports() throws Exception {
 
         final IdPAttribute attribute1 = new IdPAttribute("ad1");
@@ -202,13 +201,8 @@ public class AttributeResolverImplTest {
         final IdPAttribute attribute4 = new IdPAttribute("ad4");
         attribute4.setValues(Collections.singletonList(new StringAttributeValue("value3")));
 
-        // Connector1 contributes attribute1 and attribute2
-        final StaticDataConnector connector1 = new StaticDataConnector();
-        connector1.setId("dc1");
-        connector1.setValues(List.of(attribute1, attribute2));
-        connector1.setExportAllAttributes(true);
-
-        // Connector1 contributes attribute2 and attribute3 (but not 4 or 1)
+        // Connector2 contributes attribute2, attribute3 attribute4 (but not 1)
+        // Connector2 exports 2 & 3 (and would export 1 if it created it)
         final StaticDataConnector connector2 = new StaticDataConnector();
         connector2.setId("dc2");
         connector2.setValues(List.of(attribute2, attribute3, attribute4));
@@ -219,7 +213,8 @@ public class AttributeResolverImplTest {
         connector3.setId("dc3");
         connector3.setValues(List.of(attribute4));
 
-        final AttributeResolverImpl resolver = newAttributeResolverImpl("foo", null, List.of(connector1, connector2, connector3));
+        final AttributeResolverImpl resolver = newAttributeResolverImpl("foo", null, List.of(connector2, connector3));
+
         for (DataConnector connector : resolver.getDataConnectors().values()) {
             connector.initialize();
         }
@@ -228,9 +223,8 @@ public class AttributeResolverImplTest {
         final AttributeResolutionContext context = new AttributeResolutionContext();
         resolver.resolveAttributes(context);
 
-        // should have resolved 1, 2 and 3
-        assertEquals(context.getResolvedIdPAttributes().size(), 3);
-        assertEquals(context.getResolvedIdPAttributes().get(attribute1.getId()), attribute1);
+        // should have resolved 2, 3
+        assertEquals(context.getResolvedIdPAttributes().size(), 2);
         assertEquals(context.getResolvedIdPAttributes().get(attribute2.getId()), attribute2);
         assertEquals(context.getResolvedIdPAttributes().get(attribute3.getId()), attribute3);
     }
@@ -1025,8 +1019,8 @@ public class AttributeResolverImplTest {
         final AttributeResolverImpl result = new AttributeResolverImpl();
         result.setId(resolverId);
         
-        result.setAttributeDefinitions(definitions == null ? Collections.EMPTY_LIST : definitions);
-        result.setDataConnectors(connectors == null ? Collections.EMPTY_LIST : connectors);
+        result.setAttributeDefinitions(definitions == null ? Collections.emptyList() : definitions);
+        result.setDataConnectors(connectors == null ? Collections.emptyList() : connectors);
         result.setApplicationContext(new MockApplicationContext());
         return result;
     }
diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
index 1dce785dd..9bce00782 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/AbstractDataConnectorParser.java
@@ -31,8 +31,6 @@ import org.w3c.dom.Element;
 import net.shibboleth.idp.attribute.resolver.spring.BaseResolverPluginParser;
 import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamespaceHandler;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
-import net.shibboleth.shared.primitive.DeprecationSupport;
-import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.spring.util.SpringSupport;
 import net.shibboleth.shared.xml.ElementSupport;
@@ -53,11 +51,6 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
     /** Delay in retrying failed connector. */
     @Nonnull @NotEmpty public static final String ATTR_NORETRYDELAY = "noRetryDelay";
 
-    /**
-     * Whether to export all attributes.
-     */
-    @Nonnull @NotEmpty public static final String ATTR_EXPORT_ALL = "exportAllAttributes";
-
     /**
      * Which attributes to export.
      */
@@ -98,15 +91,7 @@ public abstract class AbstractDataConnectorParser extends BaseResolverPluginPars
                     StringSupport.trimOrNull(config.getAttributeNS(null, ATTR_NORETRYDELAY)));
         }
 
-        if (config.hasAttributeNS(null, ATTR_EXPORT_ALL)) {
-            if (config.hasAttributeNS(null, ATTR_EXPORT_NAMES)) {
-                log.warn("{} {} overrides {}", getLogPrefix(), ATTR_EXPORT_ALL, ATTR_EXPORT_NAMES);
-            }
-            DeprecationSupport.warnOnce(ObjectType.ATTRIBUTE, "exportAllAttributes", null,
-                    "exportAttributes=\"attr1, attr2,...\"");
-            builder.addPropertyValue("exportAllAttributes",
-                    StringSupport.trimOrNull(config.getAttributeNS(null, ATTR_EXPORT_ALL)));
-        } else if (config.hasAttributeNS(null, ATTR_EXPORT_NAMES)) {
+        if (config.hasAttributeNS(null, ATTR_EXPORT_NAMES)) {
             builder.addPropertyValue("exportAttributes",
                     SpringSupport.getAttributeValueAsList(config.getAttributeNodeNS(null, ATTR_EXPORT_NAMES)));
         }
diff --git a/shib-attribute-resolver-spring/src/main/resources/schema/shibboleth-attribute-resolver.xsd b/shib-attribute-resolver-spring/src/main/resources/schema/shibboleth-attribute-resolver.xsd
index bf176546d..c6f5a2a9c 100644
--- a/shib-attribute-resolver-spring/src/main/resources/schema/shibboleth-attribute-resolver.xsd
+++ b/shib-attribute-resolver-spring/src/main/resources/schema/shibboleth-attribute-resolver.xsd
@@ -147,11 +147,6 @@
                         <documentation>Time to bypass connector after a failure before trying it again.</documentation>
                     </annotation>
                 </attribute>
-                <attribute name="exportAllAttributes" type="resolver:string">
-                    <annotation>
-                        <documentation>DEPRECATED: Whether all attributes from this data connected are to be exported by the resolution process.</documentation>
-                    </annotation>
-                </attribute>
                 <attribute name="exportAttributes" type="resolver:string">
                     <annotation>
                         <documentation>A list of attribute names to be exported by the resolution process from this data connector.</documentation>
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java
index c07d0db51..2773beb7e 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/http/impl/HTTPDataConnectorParserTest.java
@@ -18,7 +18,6 @@
 package net.shibboleth.idp.attribute.resolver.spring.dc.http.impl;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.assertTrue;
 
@@ -299,7 +298,6 @@ public class HTTPDataConnectorParserTest {
                         "net/shibboleth/idp/attribute/resolver/spring/dc/http/http-attribute-resolver-v2-hybrid.xml",
                         "net/shibboleth/idp/attribute/resolver/spring/dc/http/http-attribute-resolver-spring-context.xml");
         assertNotNull(connector);
-        assertFalse(connector.isExportAllAttributes());
         assertEquals(connector.getExportAttributes().size(), 2);
         assertTrue(connector.getExportAttributes().contains("foo"));
         assertTrue(connector.getExportAttributes().contains("bar"));
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParserTest.java
index 94a9622ea..bb5560f0c 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/ComputedIdDataConnectorParserTest.java
@@ -18,7 +18,6 @@
 package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
 import java.util.Collection;
@@ -61,8 +60,7 @@ public class ComputedIdDataConnectorParserTest extends BaseAttributeDefinitionPa
     @Test public void resolverDataConnector() throws ComponentInitializationException {
         final PairwiseIdDataConnector connector = getDataConnector("resolver/computedDataConnector.xml", PairwiseIdDataConnector.class);
         final ComputedPairwiseIdStore store = (ComputedPairwiseIdStore) connector.getPairwiseIdStore();
-        assertFalse(connector.isExportAllAttributes());
-
+        
         final Collection<String> exports = connector.getExportAttributes();
         assertEquals(exports.size(), 2);
         assertTrue(exports.contains("Joe"));
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParserTest.java
index 2c67cbd39..0924203f9 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/impl/StaticDataConnectorParserTest.java
@@ -18,7 +18,6 @@
 package net.shibboleth.idp.attribute.resolver.spring.dc.impl;
 
 import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
 import java.util.List;
@@ -40,7 +39,6 @@ public class StaticDataConnectorParserTest extends BaseAttributeDefinitionParser
     @Test public void simple() {
         final StaticDataConnector connector = getDataConnector("resolver/staticAttributes.xml", StaticDataConnector.class);
 
-        assertFalse(connector.isExportAllAttributes());
         assertEquals(connector.getExportAttributes().size(), 2);
         assertTrue(connector.getExportAttributes().contains("foo"));
         assertTrue(connector.getExportAttributes().contains("bar"));
@@ -59,8 +57,7 @@ public class StaticDataConnectorParserTest extends BaseAttributeDefinitionParser
 
     @Test public void ref() {
         final StaticDataConnector connector = getDataConnector("resolver/staticAttributesRef.xml", StaticDataConnector.class);
-        assertTrue(connector.isExportAllAttributes());
-        
+
         assertEquals(connector.getAttributes().keySet().size(), 2);
         final IdPAttribute epe = connector.getAttributes().get("eduPersonEntitlement");
         List<IdPAttributeValue> values = epe.getValues();
@@ -77,7 +74,6 @@ public class StaticDataConnectorParserTest extends BaseAttributeDefinitionParser
     @Test public void nativesimple() {
         final StaticDataConnector connector = getDataConnector("staticAttributesNative.xml", StaticDataConnector.class);
         
-        assertFalse(connector.isExportAllAttributes());
         assertTrue(connector.getExportAttributes().isEmpty());
         assertEquals(connector.getAttributes().keySet().size(), 2);
         final IdPAttribute epe = connector.getAttributes().get("eduPersonEntitlement");
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/resolver/staticAttributesRef.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/resolver/staticAttributesRef.xml
index 6b76e1cf7..28fb63379 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/resolver/staticAttributesRef.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/resolver/staticAttributesRef.xml
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <DataConnector id="staticAttributes" xsi:type="Static"
-    exportAllAttributes="true"
     xmlns="urn:mace:shibboleth:2.0:resolver"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd"
     attributeListRef="StaticConnectorValues">

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


More information about the commits mailing list