keycloak-uncached

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();
     }