mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	API: Fix pagination issue with listing LDAP configuration
This commit is contained in:
		
							parent
							
								
									7e0414354a
								
							
						
					
					
						commit
						f3329be397
					
				| @ -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<List<LdapConfigurationVO>, Integer> result = _ldapConfigurationDao.searchConfigurations(null, 0, domainId); | ||||
|         final Pair<List<LdapConfigurationVO>, Integer> result = _ldapConfigurationDao.searchConfigurations(null, 0, domainId, null, null); | ||||
|         final StringBuilder providerUrls = new StringBuilder(); | ||||
|         String delim = ""; | ||||
|         for (final LdapConfigurationVO resource : result.first()) { | ||||
|  | ||||
| @ -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<List<LdapConfigurationVO>, Integer> result = _ldapConfigurationDao.searchConfigurations(hostname, port, domainId, listAll); | ||||
|         final Pair<List<LdapConfigurationVO>, Integer> result = _ldapConfigurationDao.searchConfigurations(hostname, port, domainId, listAll, cmd.getStartIndex(), cmd.getPageSizeVal()); | ||||
|         return new Pair<List<? extends LdapConfigurationVO>, Integer>(result.first(), result.second()); | ||||
|     } | ||||
| 
 | ||||
|  | ||||
| @ -39,7 +39,7 @@ public interface LdapConfigurationDao extends GenericDao<LdapConfigurationVO, Lo | ||||
| 
 | ||||
|     LdapConfigurationVO find(String hostname, int port, Long domainId, boolean listAll); | ||||
| 
 | ||||
|     Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(String hostname, int port, Long domainId); | ||||
|     Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(String hostname, int port, Long domainId, Long offset, Long limit); | ||||
| 
 | ||||
|     Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(String hostname, int port, Long domainId, boolean listAll); | ||||
|     Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(String hostname, int port, Long domainId, boolean listAll, Long offset, Long limit); | ||||
| } | ||||
|  | ||||
| @ -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<LdapConfigurationVO | ||||
| 
 | ||||
|     @Override | ||||
|     public LdapConfigurationVO find(String hostname, int port, Long domainId) { | ||||
|         SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, false); | ||||
|         SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, false, null, null); | ||||
|         return findOneBy(sc); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public LdapConfigurationVO find(String hostname, int port, Long domainId, boolean listAll) { | ||||
|         SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, listAll); | ||||
|         SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, listAll, null, null); | ||||
|         return findOneBy(sc); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(final String hostname, final int port, final Long domainId) { | ||||
|         SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, false); | ||||
|         return searchAndCount(sc, null); | ||||
|     public Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(final String hostname, final int port, final Long domainId, Long offset, Long limit) { | ||||
|         SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, false, offset, limit); | ||||
|         return searchAndCount(sc, new Filter(LdapConfigurationVO.class, "id", true, offset, limit)); | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(final String hostname, final int port, final Long domainId, final boolean listAll) { | ||||
|         SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, listAll); | ||||
|         return searchAndCount(sc, null); | ||||
|     public Pair<List<LdapConfigurationVO>, Integer> searchConfigurations(final String hostname, final int port, final Long domainId, final boolean listAll, Long offset, Long limit) { | ||||
|         SearchCriteria<LdapConfigurationVO> sc = getSearchCriteria(hostname, port, domainId, listAll, offset, limit); | ||||
|         return searchAndCount(sc, new Filter(LdapConfigurationVO.class, "id", true, offset, limit)); | ||||
|     } | ||||
| 
 | ||||
|     private SearchCriteria<LdapConfigurationVO> getSearchCriteria(String hostname, int port, Long domainId,boolean listAll) { | ||||
|     private SearchCriteria<LdapConfigurationVO> getSearchCriteria(String hostname, int port, Long domainId,boolean listAll, Long offset, Long limit) { | ||||
|         SearchCriteria<LdapConfigurationVO> sc; | ||||
|         if (domainId != null) { | ||||
|             // If domainid is present, ignore listall | ||||
|  | ||||
| @ -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<List<LdapConfigurationVO>, Integer> vos = new Pair<List<LdapConfigurationVO>, 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); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user