Details
diff --git a/federation/ldap/src/main/java/org/keycloak/federation/ldap/LDAPFederationProvider.java b/federation/ldap/src/main/java/org/keycloak/federation/ldap/LDAPFederationProvider.java
index 587cc39..27a6dd2 100755
--- a/federation/ldap/src/main/java/org/keycloak/federation/ldap/LDAPFederationProvider.java
+++ b/federation/ldap/src/main/java/org/keycloak/federation/ldap/LDAPFederationProvider.java
@@ -151,7 +151,7 @@ public class LDAPFederationProvider implements UserFederationProvider {
}
@Override
- public List<UserModel> searchByAttributes(Map<String, String> attributes, RealmModel realm) {
+ public List<UserModel> searchByAttributes(Map<String, String> attributes, RealmModel realm, int maxResults) {
IdentityManager identityManager = getIdentityManager();
List<UserModel> searchResults =new LinkedList<UserModel>();
try {
@@ -170,6 +170,7 @@ public class LDAPFederationProvider implements UserFederationProvider {
if (attributes.containsKey(LAST_NAME)) {
query.setParameter(User.LAST_NAME, attributes.get(LAST_NAME));
}
+ query.setLimit(maxResults);
List<User> agents = query.getResultList();
for (User user : agents) {
results.put(user.getLoginName(), user);
diff --git a/model/api/src/main/java/org/keycloak/models/UserFederationManager.java b/model/api/src/main/java/org/keycloak/models/UserFederationManager.java
index 0e887d3..aa197d2 100755
--- a/model/api/src/main/java/org/keycloak/models/UserFederationManager.java
+++ b/model/api/src/main/java/org/keycloak/models/UserFederationManager.java
@@ -225,7 +225,7 @@ public class UserFederationManager implements UserProvider {
void federationLoad(RealmModel realm, Map<String, String> attributes) {
for (UserFederationProviderModel federation : realm.getUserFederationProviders()) {
UserFederationProvider fed = getFederationProvider(federation);
- fed.searchByAttributes(attributes, realm);
+ fed.searchByAttributes(attributes, realm, 30);
}
}
diff --git a/model/api/src/main/java/org/keycloak/models/UserFederationProvider.java b/model/api/src/main/java/org/keycloak/models/UserFederationProvider.java
index c0923e4..d142464 100755
--- a/model/api/src/main/java/org/keycloak/models/UserFederationProvider.java
+++ b/model/api/src/main/java/org/keycloak/models/UserFederationProvider.java
@@ -89,7 +89,7 @@ public interface UserFederationProvider extends Provider {
* @param realm
* @return
*/
- List<UserModel> searchByAttributes(Map<String, String> attributes, RealmModel realm);
+ List<UserModel> searchByAttributes(Map<String, String> attributes, RealmModel realm, int maxResults);
void preRemove(RealmModel realm);
void preRemove(RealmModel realm, RoleModel role);
diff --git a/testsuite/integration/src/main/java/org/keycloak/testutils/DummyUserFederationProvider.java b/testsuite/integration/src/main/java/org/keycloak/testutils/DummyUserFederationProvider.java
index 2559b39..b99a47d 100755
--- a/testsuite/integration/src/main/java/org/keycloak/testutils/DummyUserFederationProvider.java
+++ b/testsuite/integration/src/main/java/org/keycloak/testutils/DummyUserFederationProvider.java
@@ -47,7 +47,7 @@ public class DummyUserFederationProvider implements UserFederationProvider {
}
@Override
- public List<UserModel> searchByAttributes(Map<String, String> attributes, RealmModel realm) {
+ public List<UserModel> searchByAttributes(Map<String, String> attributes, RealmModel realm, int maxResults) {
return Collections.emptyList();
}