keycloak-aplcache

Fix testsuite with Mongo

2/21/2014 3:10:38 PM

Details

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 0686f42..80835f2 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
@@ -126,7 +126,9 @@ public class ApplicationAdapter extends AbstractAdapter implements ApplicationMo
     @Override
     public RoleModel getRoleById(String id) {
         RoleEntity role = getMongoStore().loadEntity(RoleEntity.class, id, invocationContext);
-        if (role == null) {
+
+        // Check that role belongs to this application
+        if (role == null || !getId().equals(role.getApplicationId())) {
             return null;
         } else {
             return new RoleAdapter(role, this, invocationContext);
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 06991cc..2604dfe 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
@@ -316,13 +316,10 @@ public class RealmAdapter extends AbstractAdapter implements RealmModel {
 
     @Override
     public UserModel getUserById(String id) {
-        DBObject query = new QueryBuilder()
-                .and("id").is(id)
-                .and("realmId").is(getId())
-                .get();
-        UserEntity user = getMongoStore().loadSingleEntity(UserEntity.class, query, invocationContext);
+        UserEntity user = getMongoStore().loadEntity(UserEntity.class, id, invocationContext);
 
-        if (user == null) {
+        // Check that it's user from this realm
+        if (user == null || !getId().equals(user.getRealmId())) {
             return null;
         } else {
             return new UserAdapter(user, invocationContext);
@@ -426,7 +423,7 @@ public class RealmAdapter extends AbstractAdapter implements RealmModel {
     @Override
     public RoleModel getRoleById(String id) {
         RoleEntity role = getMongoStore().loadEntity(RoleEntity.class, id, invocationContext);
-        if (role == null) {
+        if (role == null || !getId().equals(role.getRealmId())) {
             return null;
         } else {
             return new RoleAdapter(role, this, invocationContext);
@@ -660,7 +657,10 @@ public class RealmAdapter extends AbstractAdapter implements RealmModel {
     @Override
     public OAuthClientModel getOAuthClientById(String id) {
         OAuthClientEntity clientEntity = getMongoStore().loadEntity(OAuthClientEntity.class, id, invocationContext);
-        if (clientEntity == null) return null;
+
+        // Check if client belongs to this realm
+        if (clientEntity == null || !getId().equals(clientEntity.getRealmId())) return null;
+
         return new OAuthClientAdapter(clientEntity, invocationContext);
     }
 
diff --git a/model/tests/src/test/java/org/keycloak/model/test/UserModelTest.java b/model/tests/src/test/java/org/keycloak/model/test/UserModelTest.java
index 89bc061..12b4635 100755
--- a/model/tests/src/test/java/org/keycloak/model/test/UserModelTest.java
+++ b/model/tests/src/test/java/org/keycloak/model/test/UserModelTest.java
@@ -3,13 +3,8 @@ package org.keycloak.model.test;
 import org.junit.Assert;
 import org.junit.Test;
 import org.keycloak.models.RealmModel;
-import org.keycloak.models.RoleModel;
 import org.keycloak.models.UserModel;
 import org.keycloak.models.UserModel.RequiredAction;
-import org.keycloak.services.managers.RealmManager;
-
-import java.util.Iterator;
-import java.util.List;
 
 /**
  * @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
@@ -36,6 +31,9 @@ public class UserModelTest extends AbstractModelTest {
         UserModel persisted = realmManager.getRealm(realm.getId()).getUser("user");
 
         assertEquals(user, persisted);
+
+        UserModel persisted2 = realmManager.getRealm(realm.getId()).getUserById(user.getId());
+        assertEquals(user, persisted2);
     }
     
     @Test
@@ -108,14 +106,5 @@ public class UserModelTest extends AbstractModelTest {
         Assert.assertArrayEquals(expected.getWebOrigins().toArray(), actual.getWebOrigins().toArray());
     }
 
-    public static void assertEquals(List<RoleModel> expected, List<RoleModel> actual) {
-        Assert.assertEquals(expected.size(), actual.size());
-        Iterator<RoleModel> exp = expected.iterator();
-        Iterator<RoleModel> act = actual.iterator();
-        while (exp.hasNext()) {
-            Assert.assertEquals(exp.next().getName(), act.next().getName());
-        }
-    }
-
 }