keycloak-uncached

Details

diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/users.js b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/users.js
index 02ecbb7..95b1f51 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/users.js
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/users.js
@@ -485,7 +485,7 @@ module.controller('LDAPCtrl', function($scope, $location, Notifications, Dialog,
 
             if ($scope.lastVendor === "ad") {
                 $scope.instance.config.usernameLDAPAttribute = "cn";
-                $scope.instance.config.userObjectClasses = "person, organizationalPerson";
+                $scope.instance.config.userObjectClasses = "person, organizationalPerson, user";
             } else {
                 $scope.instance.config.usernameLDAPAttribute = "uid";
                 $scope.instance.config.userObjectClasses = "inetOrgPerson, organizationalPerson";
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java
index 9822e98..5a6cba1 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/RealmAdapter.java
@@ -781,8 +781,9 @@ public class RealmAdapter implements RealmModel {
             entity.setPriority(model.getPriority());
             String displayName = model.getDisplayName();
             if (displayName == null) {
-                entity.setDisplayName(entity.getId());
+                displayName = entity.getId();
             }
+            entity.setDisplayName(displayName);
             em.persist(entity);
             realm.getUserFederationProviders().add(entity);
 
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java
index ea75bb1..8042b68 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/RealmAdapter.java
@@ -766,6 +766,7 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
         if (displayName == null) {
             displayName = entity.getId();
         }
+        entity.setDisplayName(displayName);
         realm.getUserFederationProviders().add(entity);
         updateRealm();
 
@@ -840,6 +841,7 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
             if (displayName == null) {
                 entity.setDisplayName(entity.getId());
             }
+            entity.setDisplayName(displayName);
             entities.add(entity);
         }
 
diff --git a/services/src/main/java/org/keycloak/services/managers/LDAPConnectionTestManager.java b/services/src/main/java/org/keycloak/services/managers/LDAPConnectionTestManager.java
index 468a146..2b78406 100755
--- a/services/src/main/java/org/keycloak/services/managers/LDAPConnectionTestManager.java
+++ b/services/src/main/java/org/keycloak/services/managers/LDAPConnectionTestManager.java
@@ -43,7 +43,7 @@ public class LDAPConnectionTestManager {
 
             ldapContext = new InitialLdapContext(env, null);
             return true;
-        } catch (NamingException ne) {
+        } catch (Exception ne) {
             String errorMessage = (TEST_AUTHENTICATION.equals(action)) ? "Error when authenticating to LDAP: " : "Error when connecting to LDAP: ";
             logger.error(errorMessage + ne.getMessage(), ne);
             return false;
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ImportTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ImportTest.java
index 31ccdf1..cbdd172 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ImportTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ImportTest.java
@@ -12,6 +12,7 @@ import org.keycloak.models.RealmModel;
 import org.keycloak.models.RequiredCredentialModel;
 import org.keycloak.models.RoleModel;
 import org.keycloak.models.SocialLinkModel;
+import org.keycloak.models.UserFederationProviderModel;
 import org.keycloak.models.UserModel;
 import org.keycloak.representations.idm.RealmRepresentation;
 import org.keycloak.services.managers.RealmManager;
@@ -194,6 +195,14 @@ public class ImportTest extends AbstractModelTest {
         Assert.assertEquals("abc", socialConfig.get("google.key"));
         Assert.assertEquals("def", socialConfig.get("google.secret"));
 
+        // Test federation providers
+        List<UserFederationProviderModel> fedProviders = realm.getUserFederationProviders();
+        Assert.assertTrue(fedProviders.size() == 1);
+        UserFederationProviderModel ldap = fedProviders.get(0);
+        Assert.assertEquals("MyLDAPProvider", ldap.getDisplayName());
+        Assert.assertEquals("dummy", ldap.getProviderName());
+        Assert.assertEquals(1, ldap.getPriority());
+        Assert.assertEquals("ldap://foo", ldap.getConfig().get("important.config"));
     }
 
     @Test
diff --git a/testsuite/integration/src/test/resources/model/testrealm.json b/testsuite/integration/src/test/resources/model/testrealm.json
index f6b212c..a5bf380 100755
--- a/testsuite/integration/src/test/resources/model/testrealm.json
+++ b/testsuite/integration/src/test/resources/model/testrealm.json
@@ -16,6 +16,16 @@
         "google.key": "abc",
         "google.secret": "def"
     },
+    "userFederationProviders": [
+        {
+            "displayName": "MyLDAPProvider",
+            "providerName": "dummy",
+            "priority": 1,
+            "config": {
+                "important.config": "ldap://foo"
+            }
+        }
+    ],
     "users": [
         {
             "username": "wburke",