This is an automated email from the ASF dual-hosted git repository. rohit pushed a commit to branch 4.16 in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.16 by this push: new e06a66b ldap: truststore per domain (#5816) e06a66b is described below commit e06a66ba14f720bb5768ed15e6e7721fcb807ebc Author: dahn <daan.hoogl...@shapeblue.com> AuthorDate: Mon Jan 3 16:31:51 2022 +0100 ldap: truststore per domain (#5816) Co-authored-by: Daan Hoogland <d...@onecht.net> --- .../org/apache/cloudstack/api/command/LDAPConfigCmd.java | 2 +- .../java/org/apache/cloudstack/ldap/LdapConfiguration.java | 14 +++++++------- .../org/apache/cloudstack/ldap/LdapContextFactory.java | 10 +++++----- .../apache/cloudstack/ldap/LdapContextFactorySpec.groovy | 6 +++--- .../org/apache/cloudstack/ldap/LdapConfigurationTest.java | 4 ++-- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LDAPConfigCmd.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LDAPConfigCmd.java index cfef21e..23f71c2 100644 --- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LDAPConfigCmd.java +++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/api/command/LDAPConfigCmd.java @@ -189,7 +189,7 @@ public class LDAPConfigCmd extends BaseCmd { List<LDAPConfigResponse> responses = new ArrayList<LDAPConfigResponse>(); if (result.second() > 0) { - boolean useSSlConfig = _ldapConfiguration.getSSLStatus(); + boolean useSSlConfig = _ldapConfiguration.getSSLStatus(null); String searchBaseConfig = _ldapConfiguration.getBaseDn(null); String bindDnConfig = _ldapConfiguration.getBindPrincipal(null); for (LdapConfigurationVO ldapConfigurationVO : result.first()) { diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapConfiguration.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapConfiguration.java index 259d613f..11cbcbd 100644 --- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapConfiguration.java +++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapConfiguration.java @@ -238,7 +238,7 @@ public class LdapConfiguration implements Configurable{ } public String getProviderUrl(final Long domainId) { - final String protocol = getSSLStatus() == true ? "ldaps://" : "ldap://"; + final String protocol = getSSLStatus(domainId) == true ? "ldaps://" : "ldap://"; final Pair<List<LdapConfigurationVO>, Integer> result = _ldapConfigurationDao.searchConfigurations(null, 0, domainId); final StringBuilder providerUrls = new StringBuilder(); String delim = ""; @@ -270,20 +270,20 @@ public class LdapConfiguration implements Configurable{ return ldapSearchGroupPrinciple.valueIn(domainId); } - public boolean getSSLStatus() { + public boolean getSSLStatus(Long domainId) { boolean sslStatus = false; - if (getTrustStore() != null && getTrustStorePassword() != null) { + if (getTrustStore(domainId) != null && getTrustStorePassword(domainId) != null) { sslStatus = true; } return sslStatus; } - public String getTrustStore() { - return ldapTrustStore.value(); + public String getTrustStore(Long domainId) { + return ldapTrustStore.valueIn(domainId); } - public String getTrustStorePassword() { - return ldapTrustStorePassword.value(); + public String getTrustStorePassword(Long domainId) { + return ldapTrustStorePassword.valueIn(domainId); } public String getUsernameAttribute(final Long domainId) { diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapContextFactory.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapContextFactory.java index 70f7a56..fd7c4d6 100644 --- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapContextFactory.java +++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapContextFactory.java @@ -66,14 +66,14 @@ public class LdapContextFactory { return createInitialDirContext(principal, password, false, domainId); } - private void enableSSL(final Hashtable<String, String> environment) { - final boolean sslStatus = _ldapConfiguration.getSSLStatus(); + private void enableSSL(final Hashtable<String, String> environment, Long domainId) { + final boolean sslStatus = _ldapConfiguration.getSSLStatus(domainId); if (sslStatus) { s_logger.info("LDAP SSL enabled."); environment.put(Context.SECURITY_PROTOCOL, "ssl"); - System.setProperty("javax.net.ssl.trustStore", _ldapConfiguration.getTrustStore()); - System.setProperty("javax.net.ssl.trustStorePassword", _ldapConfiguration.getTrustStorePassword()); + System.setProperty("javax.net.ssl.trustStore", _ldapConfiguration.getTrustStore(domainId)); + System.setProperty("javax.net.ssl.trustStorePassword", _ldapConfiguration.getTrustStorePassword(domainId)); } } @@ -92,7 +92,7 @@ public class LdapContextFactory { environment.put("com.sun.jndi.ldap.read.timeout", _ldapConfiguration.getReadTimeout(domainId).toString()); environment.put("com.sun.jndi.ldap.connect.pool", "true"); - enableSSL(environment); + enableSSL(environment, domainId); setAuthentication(environment, isSystemContext, domainId); if (principal != null) { diff --git a/plugins/user-authenticators/ldap/src/test/groovy/org/apache/cloudstack/ldap/LdapContextFactorySpec.groovy b/plugins/user-authenticators/ldap/src/test/groovy/org/apache/cloudstack/ldap/LdapContextFactorySpec.groovy index eead0bc..6511edd 100644 --- a/plugins/user-authenticators/ldap/src/test/groovy/org/apache/cloudstack/ldap/LdapContextFactorySpec.groovy +++ b/plugins/user-authenticators/ldap/src/test/groovy/org/apache/cloudstack/ldap/LdapContextFactorySpec.groovy @@ -49,9 +49,9 @@ class LdapContextFactorySpec extends spock.lang.Specification { ldapConfiguration.getFirstnameAttribute() >> "givenname" ldapConfiguration.getLastnameAttribute() >> "sn" ldapConfiguration.getBaseDn(_) >> "dc=cloudstack,dc=org" - ldapConfiguration.getSSLStatus() >> true - ldapConfiguration.getTrustStore() >> "/tmp/ldap.ts" - ldapConfiguration.getTrustStorePassword() >> "password" + ldapConfiguration.getSSLStatus(domainId) >> true + ldapConfiguration.getTrustStore(domainId) >> "/tmp/ldap.ts" + ldapConfiguration.getTrustStorePassword(domainId) >> "password" ldapConfiguration.getReadTimeout(_) >> 1000 ldapConfiguration.getLdapPageSize() >> 1 diff --git a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/ldap/LdapConfigurationTest.java b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/ldap/LdapConfigurationTest.java index 2af20e7..5d19452 100644 --- a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/ldap/LdapConfigurationTest.java +++ b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/ldap/LdapConfigurationTest.java @@ -78,7 +78,7 @@ public class LdapConfigurationTest { ldapTestConfigTool.overrideConfigValue(ldapConfiguration, "ldapTrustStore", "/tmp/ldap.ts"); ldapTestConfigTool.overrideConfigValue(ldapConfiguration, "ldapTrustStorePassword", "password"); - assertTrue("A request is made to get the status of SSL should result in true", ldapConfiguration.getSSLStatus()); + assertTrue("A request is made to get the status of SSL should result in true", ldapConfiguration.getSSLStatus(null)); } @Test public void getSearchGroupPrincipleReturnsSuccessfully() throws Exception { @@ -93,7 +93,7 @@ public class LdapConfigurationTest { // We have a ConfigDao with a value for truststore password ldapTestConfigTool.overrideConfigValue(ldapConfiguration, "ldapTrustStorePassword", "password"); - String result = ldapConfiguration.getTrustStorePassword(); + String result = ldapConfiguration.getTrustStorePassword(null); assertEquals("The result is password", "password", result); }