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 6a62ad8d99d..4b67bd44880 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 @@ -239,7 +239,7 @@ public class LdapConfiguration implements Configurable{ public String getProviderUrl(final Long domainId) { final String protocol = getSSLStatus(domainId) == true ? "ldaps://" : "ldap://"; - final Pair, Integer> result = _ldapConfigurationDao.searchConfigurations(null, 0, domainId); + final Pair, Integer> result = _ldapConfigurationDao.searchConfigurations(null, 0, domainId, null, null); final StringBuilder providerUrls = new StringBuilder(); String delim = ""; for (final LdapConfigurationVO resource : result.first()) { diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapManagerImpl.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapManagerImpl.java index 05b8578bb42..c73744bb48c 100644 --- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapManagerImpl.java +++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapManagerImpl.java @@ -377,7 +377,7 @@ public class LdapManagerImpl extends ComponentLifecycleBase implements LdapManag final int port = cmd.getPort(); final Long domainId = cmd.getDomainId(); final boolean listAll = cmd.listAll(); - final Pair, Integer> result = _ldapConfigurationDao.searchConfigurations(hostname, port, domainId, listAll); + final Pair, Integer> result = _ldapConfigurationDao.searchConfigurations(hostname, port, domainId, listAll, cmd.getStartIndex(), cmd.getPageSizeVal()); return new Pair, Integer>(result.first(), result.second()); } diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/dao/LdapConfigurationDao.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/dao/LdapConfigurationDao.java index af774b685ed..30d05c5a6f2 100644 --- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/dao/LdapConfigurationDao.java +++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/dao/LdapConfigurationDao.java @@ -39,7 +39,7 @@ public interface LdapConfigurationDao extends GenericDao, Integer> searchConfigurations(String hostname, int port, Long domainId); + Pair, Integer> searchConfigurations(String hostname, int port, Long domainId, Long offset, Long limit); - Pair, Integer> searchConfigurations(String hostname, int port, Long domainId, boolean listAll); + Pair, Integer> searchConfigurations(String hostname, int port, Long domainId, boolean listAll, Long offset, Long limit); } diff --git a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/dao/LdapConfigurationDaoImpl.java b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/dao/LdapConfigurationDaoImpl.java index c053e87b6bf..33fe98993d1 100644 --- a/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/dao/LdapConfigurationDaoImpl.java +++ b/plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/dao/LdapConfigurationDaoImpl.java @@ -19,6 +19,7 @@ package org.apache.cloudstack.ldap.dao; import java.util.List; +import com.cloud.utils.db.Filter; import org.springframework.stereotype.Component; import org.apache.cloudstack.ldap.LdapConfigurationVO; @@ -63,29 +64,29 @@ public class LdapConfigurationDaoImpl extends GenericDaoBase sc = getSearchCriteria(hostname, port, domainId, false); + SearchCriteria sc = getSearchCriteria(hostname, port, domainId, false, null, null); return findOneBy(sc); } @Override public LdapConfigurationVO find(String hostname, int port, Long domainId, boolean listAll) { - SearchCriteria sc = getSearchCriteria(hostname, port, domainId, listAll); + SearchCriteria sc = getSearchCriteria(hostname, port, domainId, listAll, null, null); return findOneBy(sc); } @Override - public Pair, Integer> searchConfigurations(final String hostname, final int port, final Long domainId) { - SearchCriteria sc = getSearchCriteria(hostname, port, domainId, false); - return searchAndCount(sc, null); + public Pair, Integer> searchConfigurations(final String hostname, final int port, final Long domainId, Long offset, Long limit) { + SearchCriteria sc = getSearchCriteria(hostname, port, domainId, false, offset, limit); + return searchAndCount(sc, new Filter(LdapConfigurationVO.class, "id", true, offset, limit)); } @Override - public Pair, Integer> searchConfigurations(final String hostname, final int port, final Long domainId, final boolean listAll) { - SearchCriteria sc = getSearchCriteria(hostname, port, domainId, listAll); - return searchAndCount(sc, null); + public Pair, Integer> searchConfigurations(final String hostname, final int port, final Long domainId, final boolean listAll, Long offset, Long limit) { + SearchCriteria sc = getSearchCriteria(hostname, port, domainId, listAll, offset, limit); + return searchAndCount(sc, new Filter(LdapConfigurationVO.class, "id", true, offset, limit)); } - private SearchCriteria getSearchCriteria(String hostname, int port, Long domainId,boolean listAll) { + private SearchCriteria getSearchCriteria(String hostname, int port, Long domainId,boolean listAll, Long offset, Long limit) { SearchCriteria sc; if (domainId != null) { // If domainid is present, ignore listall diff --git a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/ldap/LdapDirectoryServerConnectionTest.java b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/ldap/LdapDirectoryServerConnectionTest.java index a216084aa3a..53afba0a34f 100644 --- a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/ldap/LdapDirectoryServerConnectionTest.java +++ b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/ldap/LdapDirectoryServerConnectionTest.java @@ -90,7 +90,7 @@ public class LdapDirectoryServerConnectionTest { lenient().when(userManagerFactory.getInstance(LdapUserManager.Provider.OPENLDAP)).thenReturn(new OpenLdapUserManagerImpl(configuration)); // construct an elaborate structure around a single object Pair, Integer> vos = new Pair, Integer>( Collections.singletonList(configurationVO),1); - lenient().when(configurationDao.searchConfigurations(null, 0, 1L)).thenReturn(vos); + lenient().when(configurationDao.searchConfigurations(null, 0, 1L, 1L, 20L)).thenReturn(vos); contextFactory = new LdapContextFactory(configuration); ldapManager = new LdapManagerImpl(configurationDao, contextFactory, userManagerFactory, configuration);