keycloak-memoizeit
Changes
model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/ApplicationAdapter.java 6(+1 -5)
model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/MongoKeycloakSession.java 4(+0 -4)
Details
diff --git a/audit/api/src/main/java/org/keycloak/audit/AuditProvider.java b/audit/api/src/main/java/org/keycloak/audit/AuditProvider.java
index 9b43c72..71e9434 100644
--- a/audit/api/src/main/java/org/keycloak/audit/AuditProvider.java
+++ b/audit/api/src/main/java/org/keycloak/audit/AuditProvider.java
@@ -7,6 +7,8 @@ public interface AuditProvider extends AuditListener {
public EventQuery createQuery();
+ public void clear();
+
public void clear(String realmId);
public void clear(String realmId, long olderThan);
diff --git a/audit/jpa/src/main/java/org/keycloak/audit/jpa/JpaAuditProvider.java b/audit/jpa/src/main/java/org/keycloak/audit/jpa/JpaAuditProvider.java
index c54c1b8..9747951 100644
--- a/audit/jpa/src/main/java/org/keycloak/audit/jpa/JpaAuditProvider.java
+++ b/audit/jpa/src/main/java/org/keycloak/audit/jpa/JpaAuditProvider.java
@@ -29,6 +29,12 @@ public class JpaAuditProvider implements AuditProvider {
}
@Override
+ public void clear() {
+ beginTx();
+ em.createQuery("delete from EventEntity").executeUpdate();
+ }
+
+ @Override
public void clear(String realmId) {
beginTx();
em.createQuery("delete from EventEntity where realmId = :realmId").setParameter("realmId", realmId).executeUpdate();
diff --git a/audit/mongo/src/main/java/org/keycloak/audit/mongo/MongoAuditProvider.java b/audit/mongo/src/main/java/org/keycloak/audit/mongo/MongoAuditProvider.java
index 3d44a14..77fbb79 100644
--- a/audit/mongo/src/main/java/org/keycloak/audit/mongo/MongoAuditProvider.java
+++ b/audit/mongo/src/main/java/org/keycloak/audit/mongo/MongoAuditProvider.java
@@ -1,6 +1,5 @@
package org.keycloak.audit.mongo;
-import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
@@ -28,6 +27,11 @@ public class MongoAuditProvider implements AuditProvider {
}
@Override
+ public void clear() {
+ audit.remove(new BasicDBObject());
+ }
+
+ @Override
public void clear(String realmId) {
audit.remove(new BasicDBObject("realmId", realmId));
}
diff --git a/audit/tests/src/main/java/org/keycloak/audit/tests/AbstractAuditProviderTest.java b/audit/tests/src/main/java/org/keycloak/audit/tests/AbstractAuditProviderTest.java
index 7b53b75..3de7473 100644
--- a/audit/tests/src/main/java/org/keycloak/audit/tests/AbstractAuditProviderTest.java
+++ b/audit/tests/src/main/java/org/keycloak/audit/tests/AbstractAuditProviderTest.java
@@ -34,8 +34,7 @@ public abstract class AbstractAuditProviderTest {
@After
public void after() {
- provider.clear("realmId");
- provider.clear("realmId2");
+ provider.clear();
provider.close();
factory.close();
}
diff --git a/model/api/src/main/java/org/keycloak/models/ApplicationModel.java b/model/api/src/main/java/org/keycloak/models/ApplicationModel.java
index 7088f54..ad583b3 100755
--- a/model/api/src/main/java/org/keycloak/models/ApplicationModel.java
+++ b/model/api/src/main/java/org/keycloak/models/ApplicationModel.java
@@ -39,6 +39,4 @@ public interface ApplicationModel extends RoleContainerModel, ClientModel {
boolean isBearerOnly();
void setBearerOnly(boolean only);
- void addScope(RoleModel role);
-
}
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/ApplicationAdapter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/ApplicationAdapter.java
index 85a24ca..fcb9bf7 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/ApplicationAdapter.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/ApplicationAdapter.java
@@ -245,11 +245,6 @@ public class ApplicationAdapter extends ClientAdapter implements ApplicationMode
em.flush();
}
- @Override
- public void addScope(RoleModel role) {
- realm.addScopeMapping(this, role);
- }
-
public boolean equals(Object o) {
if (o == null) return false;
if (o == this) return true;
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RealmEntity.java b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RealmEntity.java
index 142670a..7d4b5a9 100755
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RealmEntity.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/entities/RealmEntity.java
@@ -35,7 +35,7 @@ public class RealmEntity {
@Id
protected String id;
- //@Column(unique = true)
+ @Column(unique = true)
protected String name;
protected boolean enabled;
diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/PersistenceExceptionConverter.java b/model/jpa/src/main/java/org/keycloak/models/jpa/PersistenceExceptionConverter.java
index c8a0523..712f1e7 100644
--- a/model/jpa/src/main/java/org/keycloak/models/jpa/PersistenceExceptionConverter.java
+++ b/model/jpa/src/main/java/org/keycloak/models/jpa/PersistenceExceptionConverter.java
@@ -4,6 +4,7 @@ import org.hibernate.exception.ConstraintViolationException;
import org.keycloak.models.ModelException;
import org.keycloak.models.ModelDuplicateException;
+import javax.persistence.EntityExistsException;
import javax.persistence.EntityManager;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
@@ -33,6 +34,8 @@ public class PersistenceExceptionConverter implements InvocationHandler {
Throwable c = e.getCause();
if (c.getCause() != null && c.getCause() instanceof ConstraintViolationException) {
throw new ModelDuplicateException(c);
+ } if (c instanceof EntityExistsException) {
+ throw new ModelDuplicateException(c);
} else {
throw new ModelException(c);
}
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/MongoStoreImpl.java b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/MongoStoreImpl.java
index 5afcc7d..483128d 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/impl/MongoStoreImpl.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/impl/MongoStoreImpl.java
@@ -179,17 +179,21 @@ public class MongoStoreImpl implements MongoStore {
try {
dbCollection.insert(dbObject);
} catch (MongoException e) {
- if (e instanceof MongoException.DuplicateKey) {
- throw new ModelDuplicateException(e);
- } else {
- throw new ModelException(e);
- }
+ throw convertException(e);
}
// Treat object as created in this transaction (It is already submited to transaction)
context.addCreatedEntity(entity);
}
+ public static ModelException convertException(MongoException e) {
+ if (e instanceof MongoException.DuplicateKey) {
+ return new ModelDuplicateException(e);
+ } else {
+ return new ModelException(e);
+ }
+ }
+
@Override
public void updateEntity(final MongoIdentifiableEntity entity, MongoStoreInvocationContext context) {
MongoTask fullUpdateTask = new MongoTask() {
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/ApplicationAdapter.java b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/ApplicationAdapter.java
index b5c6dda..c954a4d 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/ApplicationAdapter.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/ApplicationAdapter.java
@@ -123,6 +123,7 @@ public class ApplicationAdapter extends ClientAdapter<ApplicationEntity> impleme
roleEntity.setApplicationId(getId());
getMongoStore().insertEntity(roleEntity, invocationContext);
+
return new RoleAdapter(getRealm(), roleEntity, this, invocationContext);
}
@@ -160,11 +161,6 @@ public class ApplicationAdapter extends ClientAdapter<ApplicationEntity> impleme
}
@Override
- public void addScope(RoleModel role) {
- getMongoStore().pushItemToList(getMongoEntity(), "scopeIds", role.getId(), true, invocationContext);
- }
-
- @Override
public Set<RoleModel> getApplicationScopeMappings(ClientModel client) {
Set<RoleModel> result = new HashSet<RoleModel>();
List<RoleEntity> roles = MongoModelUtils.getAllScopesOfClient(client, invocationContext);
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/MongoKeycloakSession.java b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/MongoKeycloakSession.java
index f02221d..e8baa31 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/MongoKeycloakSession.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/MongoKeycloakSession.java
@@ -46,10 +46,6 @@ public class MongoKeycloakSession implements KeycloakSession {
@Override
public RealmModel createRealm(String id, String name) {
- if (getRealm(id) != null) {
- throw new IllegalStateException("Realm with id '" + id + "' already exists");
- }
-
RealmEntity newRealm = new RealmEntity();
newRealm.setId(id);
newRealm.setName(name);
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/MongoKeycloakTransaction.java b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/MongoKeycloakTransaction.java
index c9d9d37..04c4b3e 100644
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/MongoKeycloakTransaction.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/adapters/MongoKeycloakTransaction.java
@@ -1,7 +1,9 @@
package org.keycloak.models.mongo.keycloak.adapters;
+import com.mongodb.MongoException;
import org.keycloak.models.KeycloakTransaction;
import org.keycloak.models.mongo.api.context.MongoStoreInvocationContext;
+import org.keycloak.models.mongo.impl.MongoStoreImpl;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
@@ -35,7 +37,11 @@ public class MongoKeycloakTransaction implements KeycloakTransaction {
throw new IllegalStateException("Can't commit as transaction marked for rollback");
}
- invocationContext.commit();
+ try {
+ invocationContext.commit();
+ } catch (MongoException e) {
+ throw MongoStoreImpl.convertException(e);
+ }
}
@Override
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 4d4452a..cab6ac0 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
@@ -541,6 +541,7 @@ public class RealmAdapter extends AbstractMongoAdapter<RealmEntity> implements R
roleEntity.setRealmId(getId());
getMongoStore().insertEntity(roleEntity, invocationContext);
+
return new RoleAdapter(this, roleEntity, this, invocationContext);
}
diff --git a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/entities/RealmEntity.java b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/entities/RealmEntity.java
index fbde6e1..7e536d0 100755
--- a/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/entities/RealmEntity.java
+++ b/model/mongo/src/main/java/org/keycloak/models/mongo/keycloak/entities/RealmEntity.java
@@ -23,7 +23,7 @@ import java.util.Set;
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
@MongoCollection(collectionName = "realms")
-//@MongoIndex(fields = { "name" }, unique = true)
+@MongoIndex(fields = { "name" }, unique = true)
public class RealmEntity extends AbstractMongoIdentifiableEntity implements MongoEntity {
private String name;
@@ -422,5 +422,8 @@ public class RealmEntity extends AbstractMongoIdentifiableEntity implements Mong
// Remove all applications of this realm
context.getMongoStore().removeEntities(ApplicationEntity.class, query, context);
+
+ // Remove all clients of this realm
+ context.getMongoStore().removeEntities(OAuthClientEntity.class, query, context);
}
}
diff --git a/model/tests/src/test/java/org/keycloak/model/test/AbstractModelTest.java b/model/tests/src/test/java/org/keycloak/model/test/AbstractModelTest.java
index c83863f..8438bb3 100755
--- a/model/tests/src/test/java/org/keycloak/model/test/AbstractModelTest.java
+++ b/model/tests/src/test/java/org/keycloak/model/test/AbstractModelTest.java
@@ -6,11 +6,15 @@ import java.io.InputStream;
import java.util.Set;
import org.junit.After;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
+import org.keycloak.models.RealmModel;
import org.keycloak.models.RoleModel;
+import org.keycloak.models.Config;
import org.keycloak.provider.ProviderSession;
import org.keycloak.provider.ProviderSessionFactory;
import org.keycloak.representations.idm.RealmRepresentation;
@@ -24,23 +28,41 @@ import org.keycloak.util.JsonSerialization;
*/
public class AbstractModelTest {
- protected KeycloakSessionFactory factory;
+ protected static KeycloakSessionFactory factory;
+ protected static ProviderSessionFactory providerSessionFactory;
+
protected KeycloakSession identitySession;
protected RealmManager realmManager;
- protected ProviderSessionFactory providerSessionFactory;
protected ProviderSession providerSession;
+ @BeforeClass
+ public static void beforeClass() {
+ factory = KeycloakApplication.createSessionFactory();
+ providerSessionFactory = KeycloakApplication.createProviderSessionFactory();
+
+ KeycloakSession identitySession = factory.createSession();
+ try {
+ identitySession.getTransaction().begin();
+ new ApplianceBootstrap().bootstrap(identitySession, "/auth");
+ identitySession.getTransaction().commit();
+ } finally {
+ identitySession.close();
+ }
+ }
+
+ @AfterClass
+ public static void afterClass() {
+ providerSessionFactory.close();
+ factory.close();
+ }
+
@Before
public void before() throws Exception {
- factory = KeycloakApplication.createSessionFactory();
identitySession = factory.createSession();
identitySession.getTransaction().begin();
realmManager = new RealmManager(identitySession);
- providerSessionFactory = KeycloakApplication.createProviderSessionFactory();
providerSession = providerSessionFactory.createSession();
-
- new ApplianceBootstrap().bootstrap(identitySession, "/auth");
}
@After
@@ -48,12 +70,35 @@ public class AbstractModelTest {
identitySession.getTransaction().commit();
providerSession.close();
identitySession.close();
- providerSessionFactory.close();
- factory.close();
+
+ identitySession = factory.createSession();
+ try {
+ identitySession.getTransaction().begin();
+
+ RealmManager rm = new RealmManager(identitySession);
+ for (RealmModel realm : identitySession.getRealms()) {
+ if (!realm.getName().equals(Config.getAdminRealm())) {
+ rm.removeRealm(realm);
+ }
+ }
+
+ identitySession.getTransaction().commit();
+ } finally {
+ identitySession.close();
+ }
+
}
protected void commit() {
- identitySession.getTransaction().commit();
+ commit(false);
+ }
+
+ protected void commit(boolean rollback) {
+ if (rollback) {
+ identitySession.getTransaction().rollback();
+ } else {
+ identitySession.getTransaction().commit();
+ }
identitySession.close();
identitySession = factory.createSession();
identitySession.getTransaction().begin();
@@ -68,8 +113,6 @@ public class AbstractModelTest {
os.write(c);
}
byte[] bytes = os.toByteArray();
- System.out.println(new String(bytes));
-
return JsonSerialization.readValue(bytes, RealmRepresentation.class);
}
diff --git a/model/tests/src/test/java/org/keycloak/model/test/AdapterTest.java b/model/tests/src/test/java/org/keycloak/model/test/AdapterTest.java
index 9ea3163..625e959 100755
--- a/model/tests/src/test/java/org/keycloak/model/test/AdapterTest.java
+++ b/model/tests/src/test/java/org/keycloak/model/test/AdapterTest.java
@@ -6,6 +6,7 @@ import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.keycloak.models.ApplicationModel;
import org.keycloak.models.Constants;
+import org.keycloak.models.ModelDuplicateException;
import org.keycloak.models.OAuthClientModel;
import org.keycloak.models.RealmModel;
import org.keycloak.models.RequiredCredentialModel;
@@ -44,7 +45,6 @@ public class AdapterTest extends AbstractModelTest {
realmModel.setUpdateProfileOnInitialSocialLogin(true);
realmModel.addDefaultRole("foo");
- System.out.println(realmModel.getId());
realmModel = realmManager.getRealm(realmModel.getId());
Assert.assertNotNull(realmModel);
Assert.assertEquals(realmModel.getAccessCodeLifespan(), 100);
@@ -302,7 +302,7 @@ public class AdapterTest extends AbstractModelTest {
}
String[] usernames = users.toArray(new String[users.size()]);
Arrays.sort(usernames);
- Assert.assertArrayEquals(new String[] { "doublefirst", "doublelast"}, usernames);
+ Assert.assertArrayEquals(new String[]{"doublefirst", "doublelast"}, usernames);
}
{
@@ -472,5 +472,67 @@ public class AdapterTest extends AbstractModelTest {
Assert.assertFalse(realmModel.hasRole(user, appBarRole));
}
- // TODO: test scopes
+ @Test
+ public void testScopes() throws Exception {
+ test1CreateRealm();
+ RoleModel realmRole = realmModel.addRole("realm");
+
+ ApplicationModel app1 = realmModel.addApplication("app1");
+ RoleModel appRole = app1.addRole("app");
+
+ ApplicationModel app2 = realmModel.addApplication("app2");
+ realmModel.addScopeMapping(app2, realmRole);
+ realmModel.addScopeMapping(app2, appRole);
+
+ OAuthClientModel client = realmModel.addOAuthClient("client");
+ realmModel.addScopeMapping(client, realmRole);
+ realmModel.addScopeMapping(client, appRole);
+
+ commit();
+
+ realmModel = identitySession.getRealmByName("JUGGLER");
+ app1 = realmModel.getApplicationByName("app1");
+ app2 = realmModel.getApplicationByName("app2");
+ client = realmModel.getOAuthClient("client");
+
+ Set<RoleModel> scopeMappings = realmModel.getScopeMappings(app2);
+ Assert.assertEquals(2, scopeMappings.size());
+ Assert.assertTrue(scopeMappings.contains(realmModel.getRole("realm")));
+ Assert.assertTrue(scopeMappings.contains(app1.getRole("app")));
+
+ scopeMappings = realmModel.getScopeMappings(client);
+ Assert.assertEquals(2, scopeMappings.size());
+ Assert.assertTrue(scopeMappings.contains(realmModel.getRole("realm")));
+ Assert.assertTrue(scopeMappings.contains(app1.getRole("app")));
+ }
+
+ @Test
+ public void testRealmNameCollisions() throws Exception {
+ test1CreateRealm();
+
+ commit();
+
+ // Try to create realm with duplicate name
+ try {
+ test1CreateRealm();
+ commit();
+ Assert.fail("Expected exception");
+ } catch (ModelDuplicateException e) {
+ }
+ commit(true);
+
+ // Ty to rename realm to duplicate name
+ realmModel = realmManager.createRealm("JUGGLER2");
+ commit();
+
+ realmModel = realmManager.getRealmByName("JUGGLER2");
+ try {
+ realmModel.setName("JUGGLER");
+ commit();
+ Assert.fail("Expected exception");
+ } catch (ModelDuplicateException e) {
+ }
+ commit(true);
+ }
+
}
diff --git a/model/tests/src/test/java/org/keycloak/model/test/AuthProvidersLDAPTest.java b/model/tests/src/test/java/org/keycloak/model/test/AuthProvidersLDAPTest.java
index 5498f78..24317a8 100755
--- a/model/tests/src/test/java/org/keycloak/model/test/AuthProvidersLDAPTest.java
+++ b/model/tests/src/test/java/org/keycloak/model/test/AuthProvidersLDAPTest.java
@@ -7,8 +7,10 @@ import javax.ws.rs.core.MultivaluedMap;
import org.jboss.resteasy.spi.ResteasyProviderFactory;
import org.junit.After;
+import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runners.MethodSorters;
@@ -29,22 +31,38 @@ import org.keycloak.authentication.AuthenticationProviderManager;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class AuthProvidersLDAPTest extends AbstractModelTest {
+ private static LDAPEmbeddedServer embeddedServer;
+
private RealmModel realm;
private AuthenticationManager am;
- private LDAPEmbeddedServer embeddedServer;
- @Before
- @Override
- public void before() throws Exception {
- super.before();
+ @BeforeClass
+ public static void beforeClass() {
+ AbstractModelTest.beforeClass();
+
+ try {
+ embeddedServer = new LDAPEmbeddedServer();
+ embeddedServer.setup();
+ embeddedServer.importLDIF("ldap/users.ldif");
+ } catch (Exception e) {
+ throw new RuntimeException("Error starting Embedded LDAP server.", e);
+ }
+ }
+
+ @AfterClass
+ public static void afterClass() {
+ AbstractModelTest.afterClass();
try {
- this.embeddedServer = new LDAPEmbeddedServer();
- this.embeddedServer.setup();
- this.embeddedServer.importLDIF("ldap/users.ldif");
+ embeddedServer.tearDown();
} catch (Exception e) {
throw new RuntimeException("Error starting Embedded LDAP server.", e);
}
+ }
+
+ @Before
+ public void before() throws Exception {
+ super.before();
// Create realm and configure ldap
realm = realmManager.createRealm("realm");
@@ -55,17 +73,6 @@ public class AuthProvidersLDAPTest extends AbstractModelTest {
am = new AuthenticationManager(providerSession);
}
- @After
- @Override
- public void after() throws Exception {
- super.after();
- try {
- this.embeddedServer.tearDown();
- } catch (Exception e) {
- throw new RuntimeException("Error starting Embedded LDAP server.", e);
- }
- }
-
@Test
public void testLdapAuthentication() {
MultivaluedMap<String, String> formData = AuthProvidersExternalModelTest.createFormData("john", "password");
diff --git a/model/tests/src/test/java/org/keycloak/model/test/ModelTest.java b/model/tests/src/test/java/org/keycloak/model/test/ModelTest.java
index c2bafc4..05fee92 100755
--- a/model/tests/src/test/java/org/keycloak/model/test/ModelTest.java
+++ b/model/tests/src/test/java/org/keycloak/model/test/ModelTest.java
@@ -70,6 +70,7 @@ public class ModelTest extends AbstractModelTest {
private RealmModel importExport(RealmModel src, String copyName) {
RealmRepresentation representation = ModelToRepresentation.toRepresentation(src);
+ representation.setRealm(copyName);
RealmModel copy = realmManager.createRealm(copyName);
realmManager.importRealm(representation, copy);
return realmManager.getRealm(copy.getId());
diff --git a/model/tests/src/test/java/org/keycloak/model/test/MultipleRealmsTest.java b/model/tests/src/test/java/org/keycloak/model/test/MultipleRealmsTest.java
index b7e7029..c783eaa 100755
--- a/model/tests/src/test/java/org/keycloak/model/test/MultipleRealmsTest.java
+++ b/model/tests/src/test/java/org/keycloak/model/test/MultipleRealmsTest.java
@@ -22,8 +22,8 @@ public class MultipleRealmsTest extends AbstractModelTest {
@Override
public void before() throws Exception {
super.before();
- realm1 = identitySession.createRealm("id1", "realm1");
- realm2 = identitySession.createRealm("id2", "realm2");
+ realm1 = realmManager.createRealm("id1", "realm1");
+ realm2 = realmManager.createRealm("id2", "realm2");
createObjects(realm1);
createObjects(realm2);
@@ -93,7 +93,7 @@ public class MultipleRealmsTest extends AbstractModelTest {
realm.addRole("role2");
app1.addRole("app1Role1");
- app1.addScope(realm.getRole("role1"));
+ realm.addScopeMapping(app1, realm.getRole("role1"));
realm.addOAuthClient("cl1");
}
diff --git a/services/src/main/java/org/keycloak/services/managers/ApplianceBootstrap.java b/services/src/main/java/org/keycloak/services/managers/ApplianceBootstrap.java
index b36ebe4..2b1a6b4 100755
--- a/services/src/main/java/org/keycloak/services/managers/ApplianceBootstrap.java
+++ b/services/src/main/java/org/keycloak/services/managers/ApplianceBootstrap.java
@@ -71,7 +71,7 @@ public class ApplianceBootstrap {
RoleModel adminRole = realm.getRole(AdminRoles.ADMIN);
- adminConsole.addScope(adminRole);
+ realm.addScopeMapping(adminConsole, adminRole);
UserModel adminUser = realm.addUser("admin");
adminUser.setEnabled(true);
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java
index c971525..5954d10 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java
@@ -87,14 +87,14 @@ public class CompositeRoleTest {
final ApplicationModel realmComposite1Application = new ApplicationManager(manager).createApplication(realm, "REALM_COMPOSITE_1_APPLICATION");
realmComposite1Application.setEnabled(true);
- realmComposite1Application.addScope(realmComposite1);
+ realm.addScopeMapping(realmComposite1Application, realmComposite1);
realmComposite1Application.setBaseUrl("http://localhost:8081/app");
realmComposite1Application.setManagementUrl("http://localhost:8081/app/logout");
realmComposite1Application.setSecret("password");
final ApplicationModel realmRole1Application = new ApplicationManager(manager).createApplication(realm, "REALM_ROLE_1_APPLICATION");
realmRole1Application.setEnabled(true);
- realmRole1Application.addScope(realmRole1);
+ realm.addScopeMapping(realmRole1Application, realmRole1);
realmRole1Application.setBaseUrl("http://localhost:8081/app");
realmRole1Application.setManagementUrl("http://localhost:8081/app/logout");
realmRole1Application.setSecret("password");
@@ -127,7 +127,7 @@ public class CompositeRoleTest {
appCompositeApplication.setManagementUrl("http://localhost:8081/app/logout");
appCompositeApplication.setSecret("password");
final RoleModel appCompositeRole = appCompositeApplication.addRole("APP_COMPOSITE_ROLE");
- appCompositeApplication.addScope(appRole2);
+ realm.addScopeMapping(appCompositeApplication, appRole2);
appCompositeRole.addCompositeRole(realmRole1);
appCompositeRole.addCompositeRole(realmRole2);
appCompositeRole.addCompositeRole(realmRole3);