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 8ef7abbf44..8aaf97fe80 --- 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 config; + private Map config = new HashMap(); public AuthenticationProviderModel() {}; public AuthenticationProviderModel(String providerName, boolean passwordUpdateSupported, Map 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 88367325cb..21da91dcf8 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 7c4925f884..1603229a6d 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 215443d9a3..c7f1d4da34 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 18021da5db..6f7469a518 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 0946727728..666d12ae4b 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 214ff5b45e..94ec03d259 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 6d7d6ef7c9..1fd282a250 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 4b1645ea7e..a98f860c8f 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 282bf5b445..5a1dad3de9 --- 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 55a1c7a745..91027d3553 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 47e91ec25a..a97b397c01 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 f520d19aec..4cdb096215 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");