[java-shib-attribute] branch main updated: JSATTR-23 Support arbitrary SASL properties

Daniel Fisher dfisher at vt.edu
Thu Feb 22 00:54:41 UTC 2024


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=bca3f779c7ec0063b6269452c70379f4075b1f70

The following commit(s) were added to refs/heads/main by this push:
     new bca3f779c JSATTR-23 Support arbitrary SASL properties
bca3f779c is described below

commit bca3f779c7ec0063b6269452c70379f4075b1f70
Author: Daniel Fisher <dfisher at vt.edu>
AuthorDate: Wed Feb 21 19:48:11 2024 -0500

    JSATTR-23 Support arbitrary SASL properties
    
    https://shibboleth.atlassian.net/browse/JSATTR-23
    
    Update LDAPDataConnectorParser to pass additional properties to the SASL config.
---
 .../resolver/spring/dc/ldap/impl/LDAPDataConnectorParser.java     | 8 ++++++++
 .../resolver/spring/dc/ldap/impl/LDAPDataConnectorParserTest.java | 1 +
 .../spring/dc/ldap/resolver/ldap-attribute-resolver-v2-sasl.xml   | 1 +
 3 files changed, 10 insertions(+)

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 b644371a1..029658880 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
@@ -16,7 +16,9 @@ package net.shibboleth.idp.attribute.resolver.spring.dc.ldap.impl;
 
 import java.time.Duration;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -698,6 +700,7 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
             }
 
             if (!saslProperties.isEmpty()) {
+                final Map<String, Object> additionalProps = new HashMap<>();
                 for (final Element property : saslProperties) {
                     assert property != null;
                     final String name = AttributeSupport.getAttributeValue(property, null, "name");
@@ -726,8 +729,13 @@ public class LDAPDataConnectorParser extends AbstractDataConnectorParser {
                         saslConfig.addPropertyValue("securityStrength", values);
                     } else if ("javax.security.sasl.server.authentication".equals(name)) {
                         saslConfig.addPropertyValue("mutualAuthentication", value);
+                    } else {
+                        additionalProps.put(name, value);
                     }
                 }
+                if (!additionalProps.isEmpty()) {
+                    saslConfig.addPropertyValue("properties", additionalProps);
+                }
             }
 
             return saslConfig.getBeanDefinition();
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 37c39852a..c4f823d8a 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
@@ -364,6 +364,7 @@ public class LDAPDataConnectorParserTest {
         assertEquals(saslConfig.getQualityOfProtection()[0], QualityOfProtection.AUTH_INT);
         assertEquals(saslConfig.getSecurityStrength()[0], SecurityStrength.HIGH);
         assertEquals(saslConfig.getRealm(), "shibboleth.net");
+        assertEquals(saslConfig.getProperties(), Map.of("org.ldaptive.sasl.gssapi.jaas.refreshConfig", "true"));
     }
 
     @Test public void v2ReferralConfig() throws Exception {
diff --git a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-sasl.xml b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-sasl.xml
index e13c2fc95..dcfc70e01 100644
--- a/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-sasl.xml
+++ b/shib-attribute-resolver-spring/src/test/resources/net/shibboleth/idp/attribute/resolver/spring/dc/ldap/resolver/ldap-attribute-resolver-v2-sasl.xml
@@ -19,6 +19,7 @@
             <SASLProperty name="javax.security.sasl.qop" value="AUTH-INT"/>
             <SASLProperty name="javax.security.sasl.strength" value="HIGH"/>
             <SASLProperty name="javax.security.sasl.server.authentication" value="true"/>
+            <SASLProperty name="org.ldaptive.sasl.gssapi.jaas.refreshConfig" value="true"/>
         </SASLConfig>
     </DataConnector>
 

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


More information about the commits mailing list