[java-shib-attribute] branch main updated: JSATTR-9 Deprecations in LDAP Data Connector

Rod Widdowson rdw at steadingsoftware.com
Thu Dec 1 15:02:51 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=57bbdbf5fc72d1a83cfd7ea2f4ef76618377b3eb

The following commit(s) were added to refs/heads/main by this push:
     new 57bbdbf5f JSATTR-9 Deprecations in LDAP Data Connector
57bbdbf5f is described below

commit 57bbdbf5fc72d1a83cfd7ea2f4ef76618377b3eb
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu Dec 1 15:00:43 2022 +0000

    JSATTR-9 Deprecations in LDAP Data Connector
    
    https://shibboleth.atlassian.net/browse/JSATTR-9
    
     <LDAPProperty/>
     blockWhenEmpty="bool" (in <ConnectionPool/>)
     connectionStrategy="DEFAULT”
     authenticationType="..."
    
    Have all been removed
---
 .../dc/ldap/impl/LDAPDataConnectorParser.java      | 61 ++--------------------
 .../schema/shibboleth-attribute-resolver.xsd       | 27 ----------
 .../dc/ldap/impl/LDAPDataConnectorParserTest.java  | 24 ---------
 ...ap-attribute-resolver-v2-authenticationType.xml | 19 -------
 4 files changed, 4 insertions(+), 127 deletions(-)

diff --git a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
index facd9b633..dc75fc2c5 100644
--- a/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
+++ b/shib-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
@@ -70,8 +70,8 @@ import net.shibboleth.idp.attribute.resolver.spring.impl.AttributeResolverNamesp
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.DeprecationSupport;
-import net.shibboleth.shared.primitive.StringSupport;
 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.AttributeSupport;
 import net.shibboleth.shared.xml.ElementSupport;
@@ -128,23 +128,6 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
         super.doParse(config, parserContext, builder);
         log.debug("{} Parsing XML configuration {}", getLogPrefix(), config);
 
-        // V4 Deprecation
-        final List<Element> oldProperties = ElementSupport.getChildElementsByTagNameNS(config,
-                AttributeResolverNamespaceHandler.NAMESPACE, "LDAPProperty");
-        for (final Element oldProperty : oldProperties) {
-            final String oldPropName = oldProperty.getAttributeNS(null, "name");
-            if ("com.sun.jndi.ldap.connect.timeout".equals(oldPropName)) {
-                DeprecationSupport.warn(ObjectType.ELEMENT, "LDAPProperty " + oldPropName, "LDAPConnector",
-                        "LDAPConnector/@connectTimeout");
-            } else if ("com.sun.jndi.ldap.read.timeout".equals(oldPropName)) {
-                DeprecationSupport.warn(ObjectType.ELEMENT, "LDAPProperty " + oldPropName, "LDAPConnector",
-                        "LDAPConnector/@responseTimeout");
-            } else {
-                DeprecationSupport.warn(ObjectType.ELEMENT, "LDAPProperty " + oldPropName, "LDAPConnector",
-                        "(replacement depends on property)");
-            }
-        }
-
         if (config.hasAttributeNS(null, ATTR_FAIL_FAST)) {
             // LDAP, Relational & HTTP only, limited in the schema
             builder.addPropertyValue("failFastInitialize", 
@@ -264,8 +247,6 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
             final String principal = AttributeSupport.getAttributeValue(configElement, new QName("principal"));
             final String principalCredential =
                     AttributeSupport.getAttributeValue(configElement, new QName("principalCredential"));
-            final String authenticationType =
-                    AttributeSupport.getAttributeValue(configElement, new QName("authenticationType"));
             final String connectTimeout =
                     AttributeSupport.getAttributeValue(configElement, new QName("connectTimeout"));
             final String responseTimeout =
@@ -311,31 +292,9 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
                 credential.addConstructorArgValue(principalCredential);
                 connectionInitializer.addPropertyValue("bindCredential", credential.getBeanDefinition());
             }
-            BeanDefinition saslConfig = null;
-            if (authenticationType != null) {
-                // V4 Deprecation
-                DeprecationSupport.warn(ObjectType.ATTRIBUTE, "authenticationType", "<LDAPDirectory>",
-                    "<SASLConfig>");
-                final Mechanism mechanism = Mechanism.valueOf(authenticationType);
-                if ("ANONYMOUS".equals(authenticationType)) {
-                    LOG.warn("{} Ignoring unsupported authenticationType {}. " +
-                            "Do not set bind credentials for anonymous authentication", getLogPrefix(), mechanism);
-                } else if ("STRONG".equals(authenticationType)) {
-                    LOG.warn("{} Ignoring unsupported authenticationType {}.", getLogPrefix(), mechanism);
-                } else if ("SIMPLE".equals(authenticationType)) {
-                    LOG.warn("{} Ignoring unsupported authenticationType {}. " +
-                            "Set bind credentials for simple authentication", getLogPrefix(), mechanism);
-                } else {
-                    final BeanDefinitionBuilder saslConfigBuilder =
-                            BeanDefinitionBuilder.rootBeanDefinition(V2Parser.class, "buildSaslConfig");
-                    saslConfigBuilder.addConstructorArgValue(authenticationType);
-                    saslConfig = saslConfigBuilder.getBeanDefinition();
-                    connectionInitializer.addPropertyValue("bindSaslConfig", saslConfig);
-                }
-            } else {
-                saslConfig = createSaslConfig();
-                connectionInitializer.addPropertyValue("bindSaslConfig", saslConfig);
-            }
+            final BeanDefinition saslConfig = createSaslConfig();
+            connectionInitializer.addPropertyValue("bindSaslConfig", saslConfig);
+
             if (principal != null || principalCredential != null || saslConfig != null) {
                 connectionConfig.addPropertyValue("connectionInitializers", connectionInitializer.getBeanDefinition());
             }
@@ -620,12 +579,6 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
                 return null;
             }
             
-            if (poolConfigElement.hasAttributeNS(null, "blockWhenEmpty")) {
-                // V4 Deprecation
-                DeprecationSupport.warn(ObjectType.ATTRIBUTE, "blockWhenEmpty", "<ConnectionPool>",
-                        "(none), will be ignored");
-            }
-            
             final String blockWaitTime =
                     AttributeSupport.getAttributeValue(poolConfigElement, new QName("blockWaitTime"));
             final String expirationTime =
@@ -991,12 +944,6 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
                 case "ACTIVE_PASSIVE":
                     return new ActivePassiveConnectionStrategy();
 
-                case "DEFAULT":
-                    // V4 Deprecation
-                    DeprecationSupport.warn(ObjectType.CONFIGURATION, "connectionStrategy=DEFAULT", "LDAP Connector",
-                            "ACTIVE_PASSIVE");
-                    return new ActivePassiveConnectionStrategy();
-
                 default:
                     LOG.warn("Unexpected connectionStrategy {}", connectionStrategy);
                     return new ActivePassiveConnectionStrategy();
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 8a840fd9c..b90a99fb7 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
@@ -826,13 +826,6 @@
                             </documentation>
                         </annotation>
                     </element>
-                    <element name="LDAPProperty" type="resolver:PropertyType"> <!-- Deprecated - Remove in V5. -->
-                        <annotation>
-                            <documentation>
-                                DEPRECATED: LDAP connection properties relevant to the underlying provider being used.
-                            </documentation>
-                        </annotation>
-                    </element>
                     <element name="StartTLSTrustCredential" type="sec:X509Credential">
                         <annotation>
                             <documentation>
@@ -892,15 +885,6 @@
                         </documentation>
                     </annotation>
                 </attribute>
-                <attribute name="authenticationType" type="resolver:string">
-                    <annotation>
-                        <documentation>
-                            DEPRECATED
-                            The LDAP authentication type. Acceptable values are ANONYMOUS, SIMPLE, STRONG, EXTERNAL, DIGEST_MD5, CRAM_MD5, GSSAPI.
-                            Default value is SIMPLE.
-                        </documentation>
-                    </annotation>
-                </attribute>
                 <attribute name="searchScope" type="resolver:string">
                     <annotation>
                         <documentation>
@@ -1817,17 +1801,6 @@
                 </documentation>
             </annotation>
         </attribute>
-        <attribute name="blockWhenEmpty" type="resolver:string"> <!-- Deprecated - Remove in V5 -->
-            <annotation>
-                <documentation>
-                    DEPRECATED
-                    Whether the pool should block when maxPoolSize objects are in use.
-                    If false, pool will grow beyond the maxPoolSize value.
-                    Note that a properly configured blocking pool will yield better performance.
-                    Default value is true.
-                </documentation>
-            </annotation>
-        </attribute>
         <attribute name="blockWaitTime" type="resolver:string">
             <annotation>
                 <documentation>
diff --git a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
index 7e8ac5ab0..d1ab8e980 100644
--- a/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
+++ b/shib-attribute-resolver-spring/src/test/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java
@@ -365,30 +365,6 @@ public class LDAPDataConnectorParserTest {
         assertEquals(saslConfig.getRealm(), "shibboleth.net");
     }
 
-    @Test public void v2AuthenticationTypeConfig() throws Exception {
-        final LDAPDataConnector dataConnector =
-                getLdapDataConnector(new String[] {"net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-authenticationType.xml"});
-        assertNotNull(dataConnector);
-        assertTrue(dataConnector.isFailFastInitialize());
-        assertEquals(dataConnector.getNoRetryDelay(), Duration.ZERO);
-
-        final DefaultConnectionFactory connFactory = (DefaultConnectionFactory) dataConnector.getConnectionFactory();
-        assertNotNull(connFactory);
-        final ConnectionConfig connConfig = connFactory.getConnectionConfig();
-        assertNotNull(connConfig);
-        final BindConnectionInitializer connInitializer = (BindConnectionInitializer) connConfig.getConnectionInitializers()[0];
-        assertNotNull(connInitializer);
-        assertEquals(connInitializer.getBindDn(), "manager at shibboleth.net");
-        assertEquals(connInitializer.getBindCredential().getString(), "password");
-        final SaslConfig saslConfig = connInitializer.getBindSaslConfig();
-        assertNotNull(saslConfig);
-        assertEquals(saslConfig.getMechanism(), Mechanism.DIGEST_MD5);
-        assertNull(saslConfig.getAuthorizationId());
-        assertNull(saslConfig.getMutualAuthentication());
-        assertNull(saslConfig.getQualityOfProtection());
-        assertNull(saslConfig.getSecurityStrength());
-    }
-
     @Test public void v2ReferralConfig() throws Exception {
         final LDAPDataConnector dataConnector =
                 getLdapDataConnector(new String[] {"net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-referral.xml"});
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-authenticationType.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-authenticationType.xml
deleted file mode 100644
index 01ba1c5b1..000000000
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-authenticationType.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<AttributeResolver
-        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">
-
-    <DataConnector id="myLDAP" xsi:type="LDAPDirectory"
-                   ldapURL="ldap://localhost:10389"
-                   principal="manager at shibboleth.net"
-                   failFastInitialize="true"
-                   principalCredential="password"
-                   authenticationType="DIGEST_MD5">
-        <FilterTemplate>
-            <![CDATA[
-                (uid=${resolutionContext.principal})
-            ]]>
-        </FilterTemplate>
-    </DataConnector>
-
-</AttributeResolver>

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


More information about the commits mailing list