[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