[java-shib-attribute] branch main updated: IDP-2159 - Expose LDAP reconnect properties

Daniel Fisher dfisher at vt.edu
Mon Aug 21 12:54:53 UTC 2023


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

dfisher 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=52495247b0a9b807b38f7bc2dfff9faa5eff2184

The following commit(s) were added to refs/heads/main by this push:
     new 52495247b IDP-2159 - Expose LDAP reconnect properties
52495247b is described below

commit 52495247b0a9b807b38f7bc2dfff9faa5eff2184
Author: Daniel Fisher <dfisher at vt.edu>
AuthorDate: Mon Aug 21 08:26:12 2023 -0400

    IDP-2159 - Expose LDAP reconnect properties
    
    https://shibboleth.atlassian.net/browse/IDP-2159
    
    Update schema and parser to consume autoReconnect and reconnectTimeout.
---
 .../spring/dc/ldap/impl/LDAPDataConnectorParser.java  | 11 +++++++++++
 .../schema/shibboleth-attribute-resolver.xsd          | 19 ++++++++++++++++++-
 .../resolver/spring/dc/ldap/ldap-v2.properties        |  2 ++
 .../resolver/ldap-attribute-resolver-v2-props.xml     |  2 ++
 4 files changed, 33 insertions(+), 1 deletion(-)

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 ddefdaa58..feb8b2aaa 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
@@ -242,6 +242,9 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
                     AttributeSupport.getAttributeValue(configElement, new QName("connectTimeout"));
             final String responseTimeout =
                     AttributeSupport.getAttributeValue(configElement, new QName("responseTimeout"));
+            final String autoReconnect = AttributeSupport.getAttributeValue(configElement, new QName("autoReconnect"));
+            final String reconnectTimeout =
+                AttributeSupport.getAttributeValue(configElement, new QName("reconnectTimeout"));
 
             final BeanDefinitionBuilder connectionConfig =
                     BeanDefinitionBuilder.genericBeanDefinition(ConnectionConfig.class);
@@ -264,6 +267,14 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
             } else {
                 connectionConfig.addPropertyValue("responseTimeout", Duration.ofSeconds(3));
             }
+            if (autoReconnect != null) {
+                connectionConfig.addPropertyValue("autoReconnect", autoReconnect);
+            }
+            if (reconnectTimeout != null) {
+                connectionConfig.addPropertyValue("reconnectTimeout", reconnectTimeout);
+            } else {
+                connectionConfig.addPropertyValue("reconnectTimeout", Duration.ofSeconds(10));
+            }
             final BeanDefinitionBuilder sslConfig = BeanDefinitionBuilder.genericBeanDefinition(SslConfig.class);
             
             final String disableHostnameVerification =
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 f3d786277..b297984f1 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
@@ -961,6 +961,23 @@
                         </documentation>
                     </annotation>
                 </attribute>
+                <attribute name="autoReconnect" type="resolver:string">
+                    <annotation>
+                        <documentation>
+                            A boolean flag indicating whether unexpectedly closed connections should automatically attempt to reconnect.
+                            Default value is true.
+                        </documentation>
+                    </annotation>
+                </attribute>
+                <attribute name="reconnectTimeout" type="resolver:string">
+                    <annotation>
+                        <documentation>
+                            The maximum amount of time to wait for a reconnect to occur. If this limit is
+                            reached a timeout error is raised. Default value is 10 seconds.
+                            Time is expressed in ISO8601 duration format.
+                        </documentation>
+                    </annotation>
+                </attribute>
                 <attribute name="maxResultSize" type="resolver:string">
                     <annotation>
                         <documentation>
@@ -1800,7 +1817,7 @@
         <attribute name="mechanism" type="resolver:string">
             <annotation>
                 <documentation>
-                    The SASL mechanism. Common values values are EXTERNAL, DIGEST_MD5, CRAM_MD5, GSSAPI
+                    The SASL mechanism. Common values are EXTERNAL, DIGEST_MD5, CRAM_MD5, GSSAPI
                 </documentation>
             </annotation>
         </attribute>
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-v2.properties b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-v2.properties
index c5acd983d..93df51067 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-v2.properties
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/ldap-v2.properties
@@ -6,6 +6,8 @@ connectionConfig.responseTimeout=PT4S
 connectionConfig.bindDn=cn=Directory Manager
 connectionConfig.bindCredential=password
 connectionConfig.connectStrategy=RANDOM
+connectionConfig.autoReconnect=true
+connectionConfig.reconnectTimeout=PT8S
 connectionConfig.failFastInitialize=false
 
 noResultIsError=true
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-props.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-props.xml
index a3b84bf14..671e9ea2e 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-props.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-props.xml
@@ -17,6 +17,8 @@
         connectTimeout="%{connectionConfig.connectTimeout}"
         connectionStrategy="%{connectionConfig.connectStrategy}"
         responseTimeout="%{connectionConfig.responseTimeout}"
+        autoReconnect="%{connectionConfig.autoReconnect}"
+        reconnectTimeout="%{connectionConfig.reconnectTimeout}"
         failFastInitialize="%{connectionConfig.failFastInitialize}">
         <FilterTemplate>
             <![CDATA[

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


More information about the commits mailing list