keycloak-uncached

cache impl again

6/13/2014 8:05:05 PM

Details

diff --git a/model/api/src/main/java/org/keycloak/models/AuthenticationProviderModel.java b/model/api/src/main/java/org/keycloak/models/AuthenticationProviderModel.java
old mode 100644
new mode 100755
index 8ef7abb..8aaf97f
--- a/model/api/src/main/java/org/keycloak/models/AuthenticationProviderModel.java
+++ b/model/api/src/main/java/org/keycloak/models/AuthenticationProviderModel.java
@@ -1,6 +1,7 @@
 package org.keycloak.models;
 
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -12,14 +13,16 @@ public class AuthenticationProviderModel {
 
     private String providerName;
     private boolean passwordUpdateSupported = true;
-    private Map<String, String> config;
+    private Map<String, String> config = new HashMap<String, String>();
 
     public AuthenticationProviderModel() {};
 
     public AuthenticationProviderModel(String providerName, boolean passwordUpdateSupported, Map<String, String> config) {
         this.providerName = providerName;
         this.passwordUpdateSupported = passwordUpdateSupported;
-        this.config = config;
+        if (config != null) {
+           this.config.putAll(config);
+        }
     }
 
     public String getProviderName() {
diff --git a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/SimpleCacheKeycloakSessionFactory.java b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/SimpleCacheKeycloakSessionFactory.java
index 8836732..21da91d 100755
--- a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/SimpleCacheKeycloakSessionFactory.java
+++ b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/SimpleCacheKeycloakSessionFactory.java
@@ -17,6 +17,7 @@ public class SimpleCacheKeycloakSessionFactory implements CacheKeycloakSessionFa
 
     @Override
     public void init(Config.Scope config) {
+        config.get("");
 
     }
 
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/account/AccountTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/account/AccountTest.java
index 7c4925f..1603229 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/account/AccountTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/account/AccountTest.java
@@ -366,7 +366,7 @@ public class AccountTest {
 
     @Test
     public void viewLog() {
-        keycloakRule.configure(new KeycloakSetup() {
+        keycloakRule.update(new KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.setAuditEnabled(true);
@@ -413,7 +413,7 @@ public class AccountTest {
         } catch (InterruptedException e) {
             e.printStackTrace();
         } finally {
-            keycloakRule.configure(new KeycloakSetup() {
+            keycloakRule.update(new KeycloakSetup() {
                 @Override
                 public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                     appRealm.setAuditEnabled(false);
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/AdapterTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/AdapterTest.java
index 215443d..c7f1d4d 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/AdapterTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/AdapterTest.java
@@ -33,6 +33,7 @@ import org.keycloak.models.KeycloakSession;
 import org.keycloak.models.RealmModel;
 import org.keycloak.models.UserModel;
 import org.keycloak.models.UserSessionModel;
+import org.keycloak.models.cache.CacheKeycloakSession;
 import org.keycloak.provider.ProviderSession;
 import org.keycloak.representations.AccessToken;
 import org.keycloak.representations.adapters.action.SessionStats;
@@ -186,11 +187,12 @@ public class AdapterTest {
         System.out.println(pageSource);
         Assert.assertTrue(pageSource.contains("Bill Burke") && pageSource.contains("Stian Thorgersen"));
 
-        ProviderSession providerSession = keycloakRule.startSession();
-        RealmModel realm = providerSession.getProvider(KeycloakSession.class).getRealmByName("demo");
+        KeycloakSession keycloakSession = keycloakRule.startCacheSession();
+        RealmModel realm = keycloakSession.getRealmByName("demo");
         int originalIdle = realm.getSsoSessionIdleTimeout();
         realm.setSsoSessionIdleTimeout(1);
-        keycloakRule.stopSession(providerSession, true);
+        keycloakSession.getTransaction().commit();
+        keycloakSession.close();
 
         Thread.sleep(2000);
 
@@ -199,10 +201,11 @@ public class AdapterTest {
         driver.navigate().to("http://localhost:8081/product-portal");
         Assert.assertTrue(driver.getCurrentUrl().startsWith(LOGIN_URL));
 
-        providerSession = keycloakRule.startSession();
-        realm = providerSession.getProvider(KeycloakSession.class).getRealmByName("demo");
+        keycloakSession = keycloakRule.startCacheSession();
+        realm = keycloakSession.getRealmByName("demo");
         realm.setSsoSessionIdleTimeout(originalIdle);
-        keycloakRule.stopSession(providerSession, true);
+        keycloakSession.getTransaction().commit();
+        keycloakSession.close();
     }
 
     @Test
@@ -218,27 +221,30 @@ public class AdapterTest {
         System.out.println(pageSource);
         Assert.assertTrue(pageSource.contains("Bill Burke") && pageSource.contains("Stian Thorgersen"));
 
-        ProviderSession providerSession = keycloakRule.startSession();
-        RealmModel realm = providerSession.getProvider(KeycloakSession.class).getRealmByName("demo");
+        KeycloakSession keycloakSession = keycloakRule.startCacheSession();
+        RealmModel realm = keycloakSession.getRealmByName("demo");
         int originalIdle = realm.getSsoSessionIdleTimeout();
         realm.setSsoSessionIdleTimeout(1);
-        keycloakRule.stopSession(providerSession, true);
+        keycloakSession.getTransaction().commit();
+        keycloakSession.close();
 
         Thread.sleep(2000);
 
-        providerSession = keycloakRule.startSession();
-        realm = providerSession.getProvider(KeycloakSession.class).getRealmByName("demo");
+        keycloakSession = keycloakRule.startCacheSession();
+        realm = keycloakSession.getRealmByName("demo");
         realm.removeExpiredUserSessions();
-        keycloakRule.stopSession(providerSession, true);
+        keycloakSession.getTransaction().commit();
+        keycloakSession.close();
 
         // test SSO
         driver.navigate().to("http://localhost:8081/product-portal");
         Assert.assertTrue(driver.getCurrentUrl().startsWith(LOGIN_URL));
 
-        providerSession = keycloakRule.startSession();
-        realm = providerSession.getProvider(KeycloakSession.class).getRealmByName("demo");
+        keycloakSession = keycloakRule.startCacheSession();
+        realm = keycloakSession.getRealmByName("demo");
         realm.setSsoSessionIdleTimeout(originalIdle);
-        keycloakRule.stopSession(providerSession, true);
+        keycloakSession.getTransaction().commit();
+        keycloakSession.close();
     }
 
     @Test
@@ -254,11 +260,12 @@ public class AdapterTest {
         System.out.println(pageSource);
         Assert.assertTrue(pageSource.contains("Bill Burke") && pageSource.contains("Stian Thorgersen"));
 
-        ProviderSession providerSession = keycloakRule.startSession();
-        RealmModel realm = providerSession.getProvider(KeycloakSession.class).getRealmByName("demo");
+        KeycloakSession keycloakSession = keycloakRule.startCacheSession();
+        RealmModel realm = keycloakSession.getRealmByName("demo");
         int original = realm.getSsoSessionMaxLifespan();
         realm.setSsoSessionMaxLifespan(1);
-        keycloakRule.stopSession(providerSession, true);
+        keycloakSession.getTransaction().commit();
+        keycloakSession.close();
 
         Thread.sleep(2000);
 
@@ -267,9 +274,10 @@ public class AdapterTest {
         driver.navigate().to("http://localhost:8081/product-portal");
         Assert.assertTrue(driver.getCurrentUrl().startsWith(LOGIN_URL));
 
-        providerSession = keycloakRule.startSession();
-        realm = providerSession.getProvider(KeycloakSession.class).getRealmByName("demo");
+        keycloakSession = keycloakRule.startCacheSession();
+        realm = keycloakSession.getRealmByName("demo");
         realm.setSsoSessionMaxLifespan(original);
-        keycloakRule.stopSession(providerSession, true);
+        keycloakSession.getTransaction().commit();
+        keycloakSession.close();
     }
 }
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/AuthProvidersIntegrationTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/AuthProvidersIntegrationTest.java
index 18021da..6f7469a 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/AuthProvidersIntegrationTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/AuthProvidersIntegrationTest.java
@@ -150,7 +150,7 @@ public class AuthProvidersIntegrationTest {
     @Test
     public void passwordChangeExternalModel() {
         // Set password-policy for admin realm
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 adminstrationRealm.setPasswordPolicy(new PasswordPolicy("length(6)"));
@@ -174,7 +174,7 @@ public class AuthProvidersIntegrationTest {
             Assert.assertEquals(AppPage.RequestType.AUTH_RESPONSE, appPage.getRequestType());
 
         } finally {
-            keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+            keycloakRule.update(new KeycloakRule.KeycloakSetup() {
                 @Override
                 public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                     adminstrationRealm.setPasswordPolicy(new PasswordPolicy(null));
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/ResetPasswordTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/ResetPasswordTest.java
index 0946727..666d12a 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/ResetPasswordTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/ResetPasswordTest.java
@@ -184,7 +184,7 @@ public class ResetPasswordTest {
 
     @Test
     public void resetPasswordWithPasswordPolicy() throws IOException, MessagingException {
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.setPasswordPolicy(new PasswordPolicy("length"));
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/AuthorizationCodeTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/AuthorizationCodeTest.java
index 214ff5b..94ec03d 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/AuthorizationCodeTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/AuthorizationCodeTest.java
@@ -85,7 +85,7 @@ public class AuthorizationCodeTest {
 
     @Test
     public void authorizationRequestInstalledApp() throws IOException {
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.getApplicationNameMap().get("test-app").addRedirectUri(Constants.INSTALLED_APP_URN);
@@ -104,7 +104,7 @@ public class AuthorizationCodeTest {
         String codeId = events.expectLogin().detail(Details.REDIRECT_URI, Constants.INSTALLED_APP_URN).assertEvent().getDetails().get(Details.CODE_ID);
         Assert.assertEquals(codeId, new JWSInput(code).readContentAsString());
 
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.getApplicationNameMap().get("test-app").removeRedirectUri(Constants.INSTALLED_APP_URN);
@@ -114,7 +114,7 @@ public class AuthorizationCodeTest {
 
     @Test
     public void authorizationRequestInstalledAppCancel() throws IOException {
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.getApplicationNameMap().get("test-app").addRedirectUri(Constants.INSTALLED_APP_URN);
@@ -133,7 +133,7 @@ public class AuthorizationCodeTest {
 
         events.expectLogin().error("rejected_by_user").user((String) null).session((String) null).removeDetail(Details.USERNAME).removeDetail(Details.CODE_ID).detail(Details.REDIRECT_URI, Constants.INSTALLED_APP_URN).assertEvent().getDetails().get(Details.CODE_ID);
 
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.getApplicationNameMap().get("test-app").removeRedirectUri(Constants.INSTALLED_APP_URN);
@@ -143,7 +143,7 @@ public class AuthorizationCodeTest {
 
     @Test
     public void authorizationValidRedirectUri() throws IOException {
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.getApplicationByName("test-app").addRedirectUri(oauth.getRedirectUri());
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/OAuthRedirectUriTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/OAuthRedirectUriTest.java
index 6d7d6ef..1fd282a 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/OAuthRedirectUriTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/OAuthRedirectUriTest.java
@@ -90,7 +90,7 @@ public class OAuthRedirectUriTest {
 
     @Test
     public void testNoParamMultipleValidUris() throws IOException {
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.getApplicationNameMap().get("test-app").addRedirectUri("http://localhost:8081/app2");
@@ -104,7 +104,7 @@ public class OAuthRedirectUriTest {
             Assert.assertTrue(errorPage.isCurrent());
             Assert.assertEquals("Invalid redirect_uri.", errorPage.getError());
         } finally {
-            keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+            keycloakRule.update(new KeycloakRule.KeycloakSetup() {
                 @Override
                 public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                     appRealm.getApplicationNameMap().get("test-app").removeRedirectUri("http://localhost:8081/app2");
@@ -115,7 +115,7 @@ public class OAuthRedirectUriTest {
 
     @Test
     public void testNoParamNoValidUris() throws IOException {
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.getApplicationNameMap().get("test-app").removeRedirectUri("http://localhost:8081/app/*");
@@ -129,7 +129,7 @@ public class OAuthRedirectUriTest {
             Assert.assertTrue(errorPage.isCurrent());
             Assert.assertEquals("Invalid redirect_uri.", errorPage.getError());
         } finally {
-            keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+            keycloakRule.update(new KeycloakRule.KeycloakSetup() {
                 @Override
                 public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                     appRealm.getApplicationNameMap().get("test-app").addRedirectUri("http://localhost:8081/app/*");
@@ -140,7 +140,7 @@ public class OAuthRedirectUriTest {
 
     @Test
     public void testNoValidUris() throws IOException {
-        keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+        keycloakRule.update(new KeycloakRule.KeycloakSetup() {
             @Override
             public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                 appRealm.getApplicationNameMap().get("test-app").removeRedirectUri("http://localhost:8081/app/*");
@@ -154,7 +154,7 @@ public class OAuthRedirectUriTest {
             Assert.assertTrue(errorPage.isCurrent());
             Assert.assertEquals("Invalid redirect_uri.", errorPage.getError());
         } finally {
-            keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+            keycloakRule.update(new KeycloakRule.KeycloakSetup() {
                 @Override
                 public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                     appRealm.getApplicationNameMap().get("test-app").addRedirectUri("http://localhost:8081/app/*");
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/RefreshTokenTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/RefreshTokenTest.java
index 4b1645e..a98f860 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/RefreshTokenTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/RefreshTokenTest.java
@@ -183,11 +183,12 @@ public class RefreshTokenTest {
 
         String refreshId = oauth.verifyRefreshToken(tokenResponse.getRefreshToken()).getId();
 
-        ProviderSession session = keycloakRule.startSession();
-        RealmModel realm = session.getProvider(KeycloakSession.class).getRealmByName("test");
+        KeycloakSession session = keycloakRule.startCacheSession();
+        RealmModel realm = session.getRealmByName("test");
         UserSessionModel userSession = realm.getUserSession(sessionId);
         int last = userSession.getLastSessionRefresh();
-        keycloakRule.stopSession(session, false);
+        session.getTransaction().commit();
+        session.close();
 
         Thread.sleep(2000);
 
@@ -198,40 +199,44 @@ public class RefreshTokenTest {
 
         Assert.assertEquals(200, tokenResponse.getStatusCode());
 
-        session = keycloakRule.startSession();
-        realm = session.getProvider(KeycloakSession.class).getRealmByName("test");
+        session = keycloakRule.startCacheSession();
+        realm = session.getRealmByName("test");
         userSession = realm.getUserSession(sessionId);
         int next = userSession.getLastSessionRefresh();
-        keycloakRule.stopSession(session, false);
+        session.getTransaction().commit();
+        session.close();
 
         // should not update last refresh because the access token interval is way less than idle timeout
         Assert.assertEquals(last, next);
 
 
 
-        session = keycloakRule.startSession();
-        realm = session.getProvider(KeycloakSession.class).getRealmByName("test");
+        session = keycloakRule.startCacheSession();
+        realm = session.getRealmByName("test");
         int lastAccessTokenLifespan = realm.getAccessTokenLifespan();
         realm.setAccessTokenLifespan(100000);
-        keycloakRule.stopSession(session, true);
+        session.getTransaction().commit();
+        session.close();
 
         Thread.sleep(2000);
         tokenResponse = oauth.doRefreshTokenRequest(tokenResponse.getRefreshToken(), "password");
 
-        session = keycloakRule.startSession();
-        realm = session.getProvider(KeycloakSession.class).getRealmByName("test");
+        session = keycloakRule.startCacheSession();
+        realm = session.getRealmByName("test");
         userSession = realm.getUserSession(sessionId);
         next = userSession.getLastSessionRefresh();
-        keycloakRule.stopSession(session, false);
+        session.getTransaction().commit();
+        session.close();
 
         // lastSEssionRefresh should be updated because access code lifespan is higher than sso idle timeout
         Assert.assertThat(next, allOf(greaterThan(last), lessThan(last + 6)));
 
-        session = keycloakRule.startSession();
-        realm = session.getProvider(KeycloakSession.class).getRealmByName("test");
+        session = keycloakRule.startCacheSession();
+        realm = session.getRealmByName("test");
         int originalIdle = realm.getSsoSessionIdleTimeout();
         realm.setSsoSessionIdleTimeout(1);
-        keycloakRule.stopSession(session, true);
+        session.getTransaction().commit();
+        session.close();
 
         events.clear();
         Thread.sleep(2000);
@@ -244,11 +249,12 @@ public class RefreshTokenTest {
 
         events.expectRefresh(refreshId, sessionId).error(Errors.INVALID_TOKEN);
 
-        session = keycloakRule.startSession();
-        realm = session.getProvider(KeycloakSession.class).getRealmByName("test");
+        session = keycloakRule.startCacheSession();
+        realm = session.getRealmByName("test");
         realm.setSsoSessionIdleTimeout(originalIdle);
         realm.setAccessTokenLifespan(lastAccessTokenLifespan);
-        keycloakRule.stopSession(session, true);
+        session.getTransaction().commit();
+        session.close();
 
         events.clear();
     }
@@ -268,11 +274,12 @@ public class RefreshTokenTest {
 
         String refreshId = oauth.verifyRefreshToken(tokenResponse.getRefreshToken()).getId();
 
-        ProviderSession session = keycloakRule.startSession();
-        RealmModel realm = session.getProvider(KeycloakSession.class).getRealmByName("test");
+        KeycloakSession session = keycloakRule.startCacheSession();
+        RealmModel realm = session.getRealmByName("test");
         int maxLifespan = realm.getSsoSessionMaxLifespan();
         realm.setSsoSessionMaxLifespan(1);
-        keycloakRule.stopSession(session, true);
+        session.getTransaction().commit();
+        session.close();
 
         Thread.sleep(1000);
 
@@ -282,10 +289,11 @@ public class RefreshTokenTest {
         assertNull(tokenResponse.getAccessToken());
         assertNull(tokenResponse.getRefreshToken());
 
-        session = keycloakRule.startSession();
-        realm = session.getProvider(KeycloakSession.class).getRealmByName("test");
+        session = keycloakRule.startCacheSession();
+        realm = session.getRealmByName("test");
         realm.setSsoSessionMaxLifespan(maxLifespan);
-        keycloakRule.stopSession(session, true);
+        session.getTransaction().commit();
+        session.close();
 
 
         events.expectRefresh(refreshId, sessionId).error(Errors.INVALID_TOKEN);
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/ResourceOwnerPasswordCredentialsGrantTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/ResourceOwnerPasswordCredentialsGrantTest.java
old mode 100644
new mode 100755
index 282bf5b..5a1dad3
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/ResourceOwnerPasswordCredentialsGrantTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/oauth/ResourceOwnerPasswordCredentialsGrantTest.java
@@ -85,7 +85,7 @@ public class ResourceOwnerPasswordCredentialsGrantTest {
     @Test
     public void grantAccessTokenNotEnabled() throws Exception {
         try {
-            keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+            keycloakRule.update(new KeycloakRule.KeycloakSetup() {
                 @Override
                 public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                     appRealm.setPasswordCredentialGrantAllowed(false);
@@ -100,7 +100,7 @@ public class ResourceOwnerPasswordCredentialsGrantTest {
             assertEquals("not_enabled", response.getError());
 
         } finally {
-            keycloakRule.configure(new KeycloakRule.KeycloakSetup() {
+            keycloakRule.update(new KeycloakRule.KeycloakSetup() {
                 @Override
                 public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
                     appRealm.setPasswordCredentialGrantAllowed(true);
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/perf/AccessTokenPerfTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/perf/AccessTokenPerfTest.java
index 55a1c7a..91027d3 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/perf/AccessTokenPerfTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/perf/AccessTokenPerfTest.java
@@ -238,7 +238,7 @@ public class AccessTokenPerfTest {
         JaxrsClientLogin login = new JaxrsClientLogin();
         long start = System.currentTimeMillis();
         for (int i = 0; i < ITERATIONS; i++) {
-            System.out.println("*************************");
+            //System.out.println("*************************");
             login.run();
         }
         long end = System.currentTimeMillis() - start;
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/AbstractKeycloakRule.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/AbstractKeycloakRule.java
index 47e91ec..a97b397 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/AbstractKeycloakRule.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/AbstractKeycloakRule.java
@@ -10,6 +10,7 @@ import org.keycloak.Config;
 import org.keycloak.models.KeycloakSession;
 import org.keycloak.models.RealmModel;
 import org.keycloak.models.UserModel;
+import org.keycloak.models.cache.CacheKeycloakSession;
 import org.keycloak.provider.ProviderSession;
 import org.keycloak.representations.idm.RealmRepresentation;
 import org.keycloak.representations.idm.UserRepresentation;
@@ -143,6 +144,13 @@ public abstract class AbstractKeycloakRule extends ExternalResource {
         return providerSession;
     }
 
+    public KeycloakSession startCacheSession() {
+        ProviderSession providerSession = server.getProviderSessionFactory().createSession();
+        KeycloakSession session = providerSession.getProvider(CacheKeycloakSession.class);
+        session.getTransaction().begin();
+        return session;
+    }
+
     public void stopSession(ProviderSession session, boolean commit) {
         if (commit) {
             session.getProvider(KeycloakSession.class).getTransaction().commit();
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/KeycloakRule.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/KeycloakRule.java
index f520d19..4cdb096 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/KeycloakRule.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/rule/KeycloakRule.java
@@ -25,6 +25,7 @@ import org.keycloak.Config;
 import org.keycloak.models.KeycloakSession;
 import org.keycloak.models.RealmModel;
 import org.keycloak.models.UserSessionModel;
+import org.keycloak.models.cache.CacheKeycloakSession;
 import org.keycloak.provider.ProviderSession;
 import org.keycloak.services.managers.RealmManager;
 import org.keycloak.testsuite.ApplicationServlet;
@@ -80,6 +81,27 @@ public class KeycloakRule extends AbstractKeycloakRule {
         }
     }
 
+    public void update(KeycloakSetup configurer) {
+        ProviderSession providerSession = server.getProviderSessionFactory().createSession();
+        KeycloakSession session = providerSession.getProvider(CacheKeycloakSession.class);
+        session.getTransaction().begin();
+
+        try {
+            RealmManager manager = new RealmManager(session);
+
+            RealmModel adminstrationRealm = manager.getRealm(Config.getAdminRealm());
+            RealmModel appRealm = manager.getRealm("test");
+
+            configurer.providerSession = providerSession;
+            configurer.config(manager, adminstrationRealm, appRealm);
+
+            session.getTransaction().commit();
+        } finally {
+            providerSession.close();
+        }
+    }
+
+
     public void removeUserSession(String sessionId) {
         ProviderSession providerSession = startSession();
         RealmModel realm = providerSession.getProvider(KeycloakSession.class).getRealm("test");