[java-identity-provider] 02/02: IDP-1848 Expose any missing settings for LDAP pooling

Rod Widdowson rdw at steadingsoftware.com
Mon Aug 23 15:53:53 UTC 2021


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

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

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

commit 3f3929f486e3db17020e47ad1b5f14b56ccb31d2
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon Aug 23 16:35:59 2021 +0100

    IDP-1848 Expose any missing settings for LDAP pooling
    
    https://shibboleth.atlassian.net/browse/IDP-1848
    
    Add support for idp.pool.LDAP.validateOnCheckout to the attribute resolver.
---
 .../resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java      | 7 +++++++
 .../idp/attribute/resolver/spring/dc/ldap/ldap-v2.properties       | 1 +
 .../spring/dc/ldap/resolver/ldap-attribute-resolver-v2-props.xml   | 1 +
 .../src/main/resources/conf/examples/attribute-resolver-ldap.xml   | 1 +
 .../src/main/resources/schema/shibboleth-attribute-resolver.xsd    | 7 +++++++
 5 files changed, 17 insertions(+)

diff --git a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
index 814fa8009..463c4bcb4 100644
--- a/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
+++ b/idp-attribute-resolver-spring/src/main/java/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java
@@ -681,6 +681,8 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
                     AttributeSupport.getAttributeValue(poolConfigElement, new QName("validatePeriodically"));
             final String validateTimerPeriod =
                     AttributeSupport.getAttributeValue(poolConfigElement, new QName("validateTimerPeriod"));
+            final String validateOnCheckout =
+                    AttributeSupport.getAttributeValue(poolConfigElement, new QName("validateOnCheckout"));
 
             final BeanDefinitionBuilder poolConfig = BeanDefinitionBuilder.genericBeanDefinition(PoolConfig.class);
             if (minPoolSize == null) {
@@ -701,6 +703,11 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
             } else {
                 poolConfig.addPropertyValue("validatePeriod", Duration.ofMinutes(30));
             }
+            if (validateOnCheckout != null)  {
+                poolConfig.addPropertyValue("validateOnCheckOut", validateOnCheckout);
+            } else {
+                poolConfig.addPropertyValue("validateOnCheckOut", false);
+            }
             return poolConfig.getBeanDefinition();
         }
 
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-v2.properties b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-v2.properties
index d04f9de9b..d6b85091b 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-v2.properties
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-v2.properties
@@ -20,6 +20,7 @@ connectionPool.minPoolSize=5
 connectionPool.maxPoolSize=10
 connectionPool.validatePeriodically=true
 connectionPool.prunePeriod=PT5M
+connectionPool.validateOnCheckout=false
 connectionPool.validatePeriod=PT15M
 connectionPool.validator.baseDn=dc=shibboleth,dc=net
 connectionPool.validator.filter=(ou=people)
diff --git a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-props.xml b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-props.xml
index fea3f5dfe..9bcc04fc7 100644
--- a/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-props.xml
+++ b/idp-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-props.xml
@@ -47,6 +47,7 @@
             expirationTime="%{connectionPool.expirationTime}"
             validatePeriodically="%{connectionPool.validatePeriodically}"
             validateTimerPeriod="%{connectionPool.validatePeriod}"
+            validateOnCheckout="%{connectionPool.validateOnCheckout}"
             validateDN="%{connectionPool.validator.baseDn}"
             validateFilter="%{connectionPool.validator.filter}"
             prunePeriod="%{connectionPool.prunePeriod}"
diff --git a/idp-conf/src/main/resources/conf/examples/attribute-resolver-ldap.xml b/idp-conf/src/main/resources/conf/examples/attribute-resolver-ldap.xml
index 4c235b902..63fe796b1 100644
--- a/idp-conf/src/main/resources/conf/examples/attribute-resolver-ldap.xml
+++ b/idp-conf/src/main/resources/conf/examples/attribute-resolver-ldap.xml
@@ -79,6 +79,7 @@
             validatePeriodically="%{idp.pool.LDAP.validatePeriodically:true}"
             validateTimerPeriod="%{idp.pool.LDAP.validatePeriod:PT5M}"
             validateDN="%{idp.pool.LDAP.validateDN:}"
+            validateOnCheckout="%{idp.pool.LDAP.validateOnCheckout:}"
             validateFilter="%{idp.pool.LDAP.validateFilter:(objectClass=*)}"
             prunePeriod="%{idp.pool.LDAP.prunePeriod:PT5M}"
             expirationTime="%{idp.pool.LDAP.idleTime:PT10M}"/>
diff --git a/idp-schema/src/main/resources/schema/shibboleth-attribute-resolver.xsd b/idp-schema/src/main/resources/schema/shibboleth-attribute-resolver.xsd
index 674af1c99..e8cee12df 100644
--- a/idp-schema/src/main/resources/schema/shibboleth-attribute-resolver.xsd
+++ b/idp-schema/src/main/resources/schema/shibboleth-attribute-resolver.xsd
@@ -1874,6 +1874,13 @@
                 </documentation>
             </annotation>
         </attribute>
+        <attribute name="validateOnCheckout" type="resolver:string">
+            <annotation>
+                <documentation>
+                    Whether to validate connections when checking them out of the pool.
+                </documentation>
+            </annotation>
+        </attribute>
         <attribute name="prunePeriod" type="resolver:string">
             <annotation>
                 <documentation>

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


More information about the commits mailing list