[java-identity-provider] 01/02: IDP-1848 Expose any missing settings for LDAP pooling
Rod Widdowson
rdw at steadingsoftware.com
Mon Aug 23 15:53:52 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=e1d158a61d828db377e416a3d190b4581a3f17da
commit e1d158a61d828db377e416a3d190b4581a3f17da
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon Aug 23 16:17:57 2021 +0100
IDP-1848 Expose any missing settings for LDAP pooling
https://shibboleth.atlassian.net/browse/IDP-1848
Add support for idp.pool.LDAP.prunePeriod to the attribute resolver.
---
.../resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java | 5 +++++
.../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 | 8 ++++++++
5 files changed, 16 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 c33af7f97..814fa8009 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
@@ -624,8 +624,13 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
pool.addPropertyValue("blockWaitTime", blockWaitTime);
}
if (expirationTime != null) {
+ final String prunePeriod =
+ AttributeSupport.getAttributeValue(poolConfigElement, new QName("prunePeriod"));
final BeanDefinitionBuilder strategy =
BeanDefinitionBuilder.genericBeanDefinition(IdlePruneStrategy.class);
+ if (prunePeriod != null) {
+ strategy.addConstructorArgValue(prunePeriod);
+ }
strategy.addConstructorArgValue(expirationTime);
pool.addPropertyValue("pruneStrategy", strategy.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 8fb999d25..d04f9de9b 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
@@ -19,6 +19,7 @@ connectionPool.expirationTime=PT10M
connectionPool.minPoolSize=5
connectionPool.maxPoolSize=10
connectionPool.validatePeriodically=true
+connectionPool.prunePeriod=PT5M
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 cc8742413..fea3f5dfe 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
@@ -49,6 +49,7 @@
validateTimerPeriod="%{connectionPool.validatePeriod}"
validateDN="%{connectionPool.validator.baseDn}"
validateFilter="%{connectionPool.validator.filter}"
+ prunePeriod="%{connectionPool.prunePeriod}"
failFastInitialize="%{connectionPool.failFastInitialize}"/>
<ResultCache
expireAfterAccess="%{cache.TTL}"
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 ec375b43f..4c235b902 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
@@ -80,6 +80,7 @@
validateTimerPeriod="%{idp.pool.LDAP.validatePeriod:PT5M}"
validateDN="%{idp.pool.LDAP.validateDN:}"
validateFilter="%{idp.pool.LDAP.validateFilter:(objectClass=*)}"
+ prunePeriod="%{idp.pool.LDAP.prunePeriod:PT5M}"
expirationTime="%{idp.pool.LDAP.idleTime:PT10M}"/>
</DataConnector>
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 ce24edd16..674af1c99 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,14 @@
</documentation>
</annotation>
</attribute>
+ <attribute name="prunePeriod" type="resolver:string">
+ <annotation>
+ <documentation>
+ Duration between looking for idle connections to reduce the pool back
+ to its minimum size.
+ </documentation>
+ </annotation>
+ </attribute>
<attribute name="expirationTime" 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