keycloak-aplcache

federation display name

7/31/2014 11:51:04 AM

Changes

Details

diff --git a/core/src/main/java/org/keycloak/representations/idm/UserFederationProviderFactoryRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/UserFederationProviderFactoryRepresentation.java
new file mode 100755
index 0000000..359c37c
--- /dev/null
+++ b/core/src/main/java/org/keycloak/representations/idm/UserFederationProviderFactoryRepresentation.java
@@ -0,0 +1,46 @@
+package org.keycloak.representations.idm;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:bburke@redhat.com">Bill Burke</a>
+ */
+public class UserFederationProviderFactoryRepresentation {
+
+    private String id;
+    private List<String> options;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public List<String> getOptions() {
+        return options;
+    }
+
+    public void setOptions(List<String> options) {
+        this.options = options;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        UserFederationProviderFactoryRepresentation that = (UserFederationProviderFactoryRepresentation) o;
+
+        if (!id.equals(that.id)) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        return id.hashCode();
+    }
+}
diff --git a/core/src/main/java/org/keycloak/representations/idm/UserFederationProviderRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/UserFederationProviderRepresentation.java
index 76541f9..19f1d0c 100755
--- a/core/src/main/java/org/keycloak/representations/idm/UserFederationProviderRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/UserFederationProviderRepresentation.java
@@ -8,6 +8,7 @@ import java.util.Map;
 public class UserFederationProviderRepresentation {
 
     private String id;
+    private String displayName;
     private String providerName;
     private Map<String, String> config;
     private int priority;
@@ -20,6 +21,14 @@ public class UserFederationProviderRepresentation {
         this.id = id;
     }
 
+    public String getDisplayName() {
+        return displayName;
+    }
+
+    public void setDisplayName(String displayName) {
+        this.displayName = displayName;
+    }
+
     public String getProviderName() {
         return providerName;
     }
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 73b476f..034d52b 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
@@ -346,14 +346,82 @@ module.controller('UserFederationCtrl', function($scope, $location, realm, UserF
 
 });
 
-module.controller('GenericUserFederationCtrl', function($scope, realm, provider, UserFederationProviders, UserFederationInstances, Notifications, Dialog) {
+module.controller('GenericUserFederationCtrl', function($scope, $location, Notifications, Dialog, realm, provider, providerFactory, UserFederationInstances) {
     console.log('GenericUserFederationCtrl');
 
-    console.log("provider: " + provider.providerName);
+    $scope.provider = angular.copy(provider);
+    $scope.create = !provider.providerName;
+
+    if ($scope.create) {
+        $scope.provider.providerName = providerFactory.id;
+        $scope.provider.config = {};
+        $scope.provider.priority = 0;
+    }
+
+    $scope.realm = realm;
+
+
+    $scope.changed = false;
+
+    $scope.$watch('provider', function() {
+        if (!angular.equals($scope.provider, provider)) {
+            $scope.changed = true;
+        }
+
+    }, true);
+
+    $scope.save = function() {
+        $scope.changed = false;
+        if ($scope.create) {
+            UserFederationInstances.save({realm: realm.realm}, $scope.provider,  function () {
+                $scope.changed = false;
+                $location.url("/realms/" + realm.realm + "/user-federation");
+                Notifications.success("The provider has been created.");
+            });
+        } else {
+            UserFederationInstances.update({realm: realm.realm,
+                    provider: provider.id
+                },
+                $scope.provider,  function () {
+                    $scope.changed = false;
+                    $location.url("/realms/" + realm.realm + "/user-federation");
+                    Notifications.success("The provider has been updated.");
+                });
+
+        }
+    };
+
+    $scope.reset = function() {
+        $scope.provider = angular.copy(provider);
+        if ($scope.create) {
+            $scope.provider.providerName = providerFactory.id;
+            $scope.provider.config = {};
+            $scope.provider.priority = 0;
+        }
+        $scope.changed = false;
+    };
+
+    $scope.cancel = function() {
+        $location.url("/realms/" + realm.realm + "/user-federation");
+    };
+
+    $scope.remove = function() {
+        Dialog.confirmDelete($scope.provider.id, 'provider', function() {
+            $scope.provider.$remove({
+                realm : realm.realm,
+                provider : $scope.provider.id
+            }, function() {
+                $location.url("/realms/" + realm.realm + "/user-federation");
+                Notifications.success("The provider has been deleted.");
+            });
+        });
+    };
+
 
 });
 
 
+
 module.controller('LDAPCtrl', function($scope, $location, Notifications, Dialog, realm, provider, UserFederationInstances, RealmLDAPConnectionTester) {
     console.log('LDAPCtrl');
 
@@ -363,6 +431,7 @@ module.controller('LDAPCtrl', function($scope, $location, Notifications, Dialog,
     if ($scope.create) {
         $scope.provider.providerName = "ldap";
         $scope.provider.config = {};
+        $scope.provider.priority = 0;
     }
 
     $scope.ldapVendors = [
@@ -382,7 +451,7 @@ module.controller('LDAPCtrl', function($scope, $location, Notifications, Dialog,
 
     $scope.lastVendor = $scope.provider.config.vendor;
 
-    $scope.$watch('realm', function() {
+    $scope.$watch('provider', function() {
         if (!angular.equals($scope.provider, provider)) {
             $scope.changed = true;
         }
@@ -427,6 +496,7 @@ module.controller('LDAPCtrl', function($scope, $location, Notifications, Dialog,
         if ($scope.create) {
             $scope.provider.providerName = "ldap";
             $scope.provider.config = {};
+            $scope.provider.priority = 0;
         }
         $scope.changed = false;
         $scope.lastVendor = $scope.provider.config.vendor;
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/federated-ldap.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/federated-ldap.html
index c4f1d7b..edcf141 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/federated-ldap.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/federated-ldap.html
@@ -16,6 +16,18 @@
             <fieldset>
                 <legend><span class="text">Required Settings</span></legend>
                 <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="consoleDisplayName">Console display name </label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="consoleDisplayName" type="text" ng-model="provider.displayName" placeholder="defaults to id">
+                    </div>
+                </div>
+                <div class="form-group clearfix">
+                    <label class="col-sm-2 control-label" for="priority">Priority </label>
+                    <div class="col-sm-4">
+                        <input class="form-control" id="priority" type="text" ng-model="provider.priority">
+                    </div>
+                </div>
+                <div class="form-group clearfix">
                     <label class="col-sm-2 control-label" for="vendor">Vendor</label>
                     <div class="col-sm-4">
                         <div class="select-kc">
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/user-federation.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/user-federation.html
index d56ec17..352f526 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/user-federation.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/user-federation.html
@@ -34,7 +34,7 @@
             </thead>
             <tbody>
             <tr ng-repeat="instance in instances">
-                <td><a href="#/realms/{{realm.realm}}/user-federation/providers/{{instance.providerName}}/{{instance.id}}">{{instance.id}}</a></td>
+                <td><a href="#/realms/{{realm.realm}}/user-federation/providers/{{instance.providerName}}/{{instance.id}}">{{instance.displayName}}</a></td>
                 <td>{{instance.providerName|capitalize}}</td>
                 <td>{{instance.priority}}</td>
              </tr>
diff --git a/model/api/src/main/java/org/keycloak/models/entities/UserFederationProviderEntity.java b/model/api/src/main/java/org/keycloak/models/entities/UserFederationProviderEntity.java
index 5e39d9d..6d3916e 100755
--- a/model/api/src/main/java/org/keycloak/models/entities/UserFederationProviderEntity.java
+++ b/model/api/src/main/java/org/keycloak/models/entities/UserFederationProviderEntity.java
@@ -11,6 +11,7 @@ public class UserFederationProviderEntity {
     protected String providerName;
     protected Map<String, String> config;
     protected int priority;
+    protected String displayName;
 
 
     public String getId() {
@@ -44,4 +45,12 @@ public class UserFederationProviderEntity {
     public void setPriority(int priority) {
         this.priority = priority;
     }
+
+    public String getDisplayName() {
+        return displayName;
+    }
+
+    public void setDisplayName(String displayName) {
+        this.displayName = displayName;
+    }
 }
diff --git a/model/api/src/main/java/org/keycloak/models/RealmModel.java b/model/api/src/main/java/org/keycloak/models/RealmModel.java
index aee3119..36b14b7 100755
--- a/model/api/src/main/java/org/keycloak/models/RealmModel.java
+++ b/model/api/src/main/java/org/keycloak/models/RealmModel.java
@@ -167,7 +167,7 @@ public interface RealmModel extends RoleContainerModel {
 
     List<UserFederationProviderModel> getUserFederationProviders();
 
-    UserFederationProviderModel addUserFederationProvider(String providerName, Map<String, String> config, int priority);
+    UserFederationProviderModel addUserFederationProvider(String providerName, Map<String, String> config, int priority, String displayName);
     void updateUserFederationProvider(UserFederationProviderModel provider);
     void removeUserFederationProvider(UserFederationProviderModel provider);
     void setUserFederationProviders(List<UserFederationProviderModel> providers);
diff --git a/model/api/src/main/java/org/keycloak/models/UserFederationProviderModel.java b/model/api/src/main/java/org/keycloak/models/UserFederationProviderModel.java
index a682c54..2542b90 100755
--- a/model/api/src/main/java/org/keycloak/models/UserFederationProviderModel.java
+++ b/model/api/src/main/java/org/keycloak/models/UserFederationProviderModel.java
@@ -13,15 +13,18 @@ public class UserFederationProviderModel {
     private String providerName;
     private Map<String, String> config = new HashMap<String, String>();
     private int priority;
+    private String displayName;
 
     public UserFederationProviderModel() {};
 
-    public UserFederationProviderModel(String id, String providerName, Map<String, String> config, int priority) {
+    public UserFederationProviderModel(String id, String providerName, Map<String, String> config, int priority, String displayName) {
         this.id = id;
         this.providerName = providerName;
         if (config != null) {
            this.config.putAll(config);
         }
+        this.priority = priority;
+        this.displayName = displayName;
     }
 
     public String getId() {
@@ -51,4 +54,12 @@ public class UserFederationProviderModel {
     public void setPriority(int priority) {
         this.priority = priority;
     }
+
+    public String getDisplayName() {
+        return displayName;
+    }
+
+    public void setDisplayName(String displayName) {
+        this.displayName = displayName;
+    }
 }
diff --git a/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java b/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
index 714ee8d..21765a3 100755
--- a/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
+++ b/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
@@ -276,6 +276,7 @@ public class ModelToRepresentation {
         rep.setConfig(model.getConfig());
         rep.setProviderName(model.getProviderName());
         rep.setPriority(model.getPriority());
+        rep.setDisplayName(model.getDisplayName());
         return rep;
     }
 }
diff --git a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
index 06c6630..4df881c 100755
--- a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
+++ b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
@@ -320,7 +320,7 @@ public class RepresentationToModel {
 
         for (UserFederationProviderRepresentation representation : providers) {
             UserFederationProviderModel model = new UserFederationProviderModel(representation.getId(), representation.getProviderName(),
-                    representation.getConfig(), representation.getPriority());
+                    representation.getConfig(), representation.getPriority(), representation.getDisplayName());
             result.add(model);
         }
         return result;
diff --git a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/RealmAdapter.java b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/RealmAdapter.java
index b0281dc..6639208 100755
--- a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/RealmAdapter.java
+++ b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/RealmAdapter.java
@@ -618,9 +618,9 @@ public class RealmAdapter implements RealmModel {
     }
 
     @Override
-    public UserFederationProviderModel addUserFederationProvider(String providerName, Map<String, String> config, int priority) {
+    public UserFederationProviderModel addUserFederationProvider(String providerName, Map<String, String> config, int priority, String displayName) {
         getDelegateForUpdate();
-        return updated.addUserFederationProvider(providerName, config, priority);
+        return updated.addUserFederationProvider(providerName, config, priority, displayName);
     }
 
     @Override
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserFederationProviderEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserFederationProviderEntity.java
index d4a40c2..42863bf 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserFederationProviderEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/UserFederationProviderEntity.java
@@ -41,6 +41,9 @@ public class UserFederationProviderEntity {
     @CollectionTable(name="USER_FEDERATION_CONFIG")
     private Map<String, String> config;
 
+    @Column(name="DISPLAY_NAME")
+    private String displayName;
+
     public String getId() {
         return id;
     }
@@ -81,5 +84,11 @@ public class UserFederationProviderEntity {
         this.config = config;
     }
 
+    public String getDisplayName() {
+        return displayName;
+    }
 
+    public void setDisplayName(String displayName) {
+        this.displayName = displayName;
+    }
 }
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 ee94cf1..bc57ef1 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
@@ -746,14 +746,14 @@ public class RealmAdapter implements RealmModel {
         });
         List<UserFederationProviderModel> result = new ArrayList<UserFederationProviderModel>();
         for (UserFederationProviderEntity entity : copy) {
-            result.add(new UserFederationProviderModel(entity.getId(), entity.getProviderName(), entity.getConfig(), entity.getPriority()));
+            result.add(new UserFederationProviderModel(entity.getId(), entity.getProviderName(), entity.getConfig(), entity.getPriority(), entity.getDisplayName()));
         }
 
         return result;
     }
 
     @Override
-    public UserFederationProviderModel addUserFederationProvider(String providerName, Map<String, String> config, int priority) {
+    public UserFederationProviderModel addUserFederationProvider(String providerName, Map<String, String> config, int priority, String displayName) {
         String id = KeycloakModelUtils.generateId();
         UserFederationProviderEntity entity = new UserFederationProviderEntity();
         entity.setId(id);
@@ -761,10 +761,14 @@ public class RealmAdapter implements RealmModel {
         entity.setProviderName(providerName);
         entity.setConfig(config);
         entity.setPriority(priority);
+        if (displayName == null) {
+            displayName = id;
+        }
+        entity.setDisplayName(displayName);
         em.persist(entity);
         realm.getUserFederationProviders().add(entity);
         em.flush();
-        return new UserFederationProviderModel(entity.getId(), providerName, config, priority);
+        return new UserFederationProviderModel(entity.getId(), providerName, config, priority, displayName);
     }
 
     @Override
@@ -785,6 +789,10 @@ public class RealmAdapter implements RealmModel {
         while (it.hasNext()) {
             UserFederationProviderEntity entity = it.next();
             if (entity.getId().equals(model.getId())) {
+                String displayName = model.getDisplayName();
+                if (displayName != null) {
+                    entity.setDisplayName(model.getDisplayName());
+                }
                 entity.setConfig(model.getConfig());
                 entity.setPriority(model.getPriority());
                 entity.setProviderName(model.getProviderName());
@@ -807,6 +815,10 @@ public class RealmAdapter implements RealmModel {
                     entity.setPriority(model.getPriority());
                     entity.setProviderName(model.getProviderName());
                     entity.setPriority(model.getPriority());
+                    String displayName = model.getDisplayName();
+                    if (displayName != null) {
+                        entity.setDisplayName(model.getDisplayName());
+                    }
                     found = true;
                     break;
                 }
@@ -829,7 +841,7 @@ public class RealmAdapter implements RealmModel {
             if (!found) add.add(model);
         }
 
-        for (UserFederationProviderModel model : providers) {
+        for (UserFederationProviderModel model : add) {
             UserFederationProviderEntity entity = new UserFederationProviderEntity();
             if (model.getId() != null) entity.setId(model.getId());
             else entity.setId(KeycloakModelUtils.generateId());
@@ -837,6 +849,10 @@ public class RealmAdapter implements RealmModel {
             entity.setPriority(model.getPriority());
             entity.setProviderName(model.getProviderName());
             entity.setPriority(model.getPriority());
+            String displayName = model.getDisplayName();
+            if (displayName == null) {
+                entity.setDisplayName(entity.getId());
+            }
             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 351ea6b..f42365e 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
@@ -795,16 +795,19 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
     }
 
     @Override
-    public UserFederationProviderModel addUserFederationProvider(String providerName, Map<String, String> config, int priority) {
+    public UserFederationProviderModel addUserFederationProvider(String providerName, Map<String, String> config, int priority, String displayName) {
         UserFederationProviderEntity entity = new UserFederationProviderEntity();
         entity.setId(KeycloakModelUtils.generateId());
         entity.setPriority(priority);
         entity.setProviderName(providerName);
         entity.setConfig(config);
+        if (displayName == null) {
+            displayName = entity.getId();
+        }
         realm.getUserFederationProviders().add(entity);
         updateRealm();
 
-        return new UserFederationProviderModel(entity.getId(), providerName, config, priority);
+        return new UserFederationProviderModel(entity.getId(), providerName, config, priority, displayName);
     }
 
     @Override
@@ -828,6 +831,10 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
                 entity.setProviderName(model.getProviderName());
                 entity.setConfig(model.getConfig());
                 entity.setPriority(model.getPriority());
+                String displayName = model.getDisplayName();
+                if (displayName != null) {
+                    entity.setDisplayName(model.getDisplayName());
+                }
             }
         }
         updateRealm();
@@ -851,7 +858,7 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
         });
         List<UserFederationProviderModel> result = new LinkedList<UserFederationProviderModel>();
         for (UserFederationProviderEntity entity : copy) {
-            result.add(new UserFederationProviderModel(entity.getId(), entity.getProviderName(), entity.getConfig(), entity.getPriority()));
+            result.add(new UserFederationProviderModel(entity.getId(), entity.getProviderName(), entity.getConfig(), entity.getPriority(), entity.getDisplayName()));
         }
 
         return result;
@@ -867,6 +874,10 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
             entity.setProviderName(model.getProviderName());
             entity.setConfig(model.getConfig());
             entity.setPriority(model.getPriority());
+            String displayName = model.getDisplayName();
+            if (displayName == null) {
+                entity.setDisplayName(entity.getId());
+            }
             entities.add(entity);
         }
 
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/UserFederationResource.java b/services/src/main/java/org/keycloak/services/resources/admin/UserFederationResource.java
index 4ceef1c..7e7a0b2 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/UserFederationResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/UserFederationResource.java
@@ -121,7 +121,11 @@ public class UserFederationResource {
     public Response createProvider(UserFederationProviderRepresentation rep) {
         logger.info("createProvider");
         auth.requireManage();
-        UserFederationProviderModel model = realm.addUserFederationProvider(rep.getProviderName(), rep.getConfig(), rep.getPriority());
+        String displayName = rep.getDisplayName();
+        if (displayName != null && displayName.trim().equals("")) {
+            displayName = null;
+        }
+        UserFederationProviderModel model = realm.addUserFederationProvider(rep.getProviderName(), rep.getConfig(), rep.getPriority(), displayName);
         return Response.created(uriInfo.getAbsolutePathBuilder().path(model.getId()).build()).build();
     }
 
@@ -137,7 +141,11 @@ public class UserFederationResource {
     public void updateProvider(@PathParam("id") String id, UserFederationProviderRepresentation rep) {
         logger.info("updateProvider");
         auth.requireManage();
-        UserFederationProviderModel model = new UserFederationProviderModel(id, rep.getProviderName(), rep.getConfig(), rep.getPriority());
+        String displayName = rep.getDisplayName();
+        if (displayName != null && displayName.trim().equals("")) {
+            displayName = null;
+        }
+        UserFederationProviderModel model = new UserFederationProviderModel(id, rep.getProviderName(), rep.getConfig(), rep.getPriority(), displayName);
         realm.updateUserFederationProvider(model);
     }
 
@@ -170,7 +178,7 @@ public class UserFederationResource {
     public void deleteProvider(@PathParam("id") String id) {
         logger.info("deleteProvider");
         auth.requireManage();
-        UserFederationProviderModel model = new UserFederationProviderModel(id, null, null, -1);
+        UserFederationProviderModel model = new UserFederationProviderModel(id, null, null, -1, null);
         realm.removeUserFederationProvider(model);
 
     }
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/FederationProvidersIntegrationTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/FederationProvidersIntegrationTest.java
index ba16262..0dbb947 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/FederationProvidersIntegrationTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/FederationProvidersIntegrationTest.java
@@ -64,7 +64,7 @@ public class FederationProvidersIntegrationTest {
 
 
 
-            appRealm.addUserFederationProvider(LDAPFederationProviderFactory.PROVIDER_NAME, ldapConfig, 0);
+            appRealm.addUserFederationProvider(LDAPFederationProviderFactory.PROVIDER_NAME, ldapConfig, 0, null);
 
             // Configure LDAP
             ldapRule.getEmbeddedServer().setupLdapInRealm(appRealm);