keycloak-uncached

Details

diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/CookieTokenStoreAdapterTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/CookieTokenStoreAdapterTest.java
index d4c6fee..e384467 100644
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/CookieTokenStoreAdapterTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/CookieTokenStoreAdapterTest.java
@@ -38,6 +38,9 @@ public class CookieTokenStoreAdapterTest {
 
         @Override
         protected void configure(KeycloakSession session, RealmManager manager, RealmModel adminRealm) {
+            // Other tests may left Time offset uncleared, which could cause issues
+            Time.setOffset(0);
+
             RealmRepresentation representation = KeycloakServer.loadJson(getClass().getResourceAsStream("/adapter-test/demorealm.json"), RealmRepresentation.class);
             manager.importRealm(representation);
 
@@ -87,52 +90,56 @@ public class CookieTokenStoreAdapterTest {
 
     @Test
     public void testTokenInCookieRefresh() throws Throwable {
-        // Set token timeout 1 sec
-        KeycloakSession session = keycloakRule.startSession();
-        RealmModel realm = session.realms().getRealmByName("demo");
-        int originalTokenTimeout = realm.getAccessTokenLifespan();
-        realm.setAccessTokenLifespan(3);
-        session.getTransaction().commit();
-        session.close();
-
-        // login to customer-cookie-portal
-        String tokenCookie1 = loginToCustomerCookiePortal();
-
-        // Simulate waiting 4 seconds (Running testsuite in real env like Wildfly or EAP may still require to do Thread.sleep to really wait 4 seconds...)
-        Time.setOffset(4);
-        //Thread.sleep(4000);
-
-        // assert cookie was refreshed
-        driver.navigate().to("http://localhost:8081/customer-cookie-portal");
-        Assert.assertEquals(driver.getCurrentUrl(), "http://localhost:8081/customer-cookie-portal");
-        assertLogged();
-        String tokenCookie2 = driver.manage().getCookieNamed(AdapterConstants.KEYCLOAK_ADAPTER_STATE_COOKIE).getValue();
-        Assert.assertNotEquals(tokenCookie1, tokenCookie2);
-
-        // login to 2nd app and logout from it
-        driver.navigate().to("http://localhost:8081/customer-portal");
-        Assert.assertEquals(driver.getCurrentUrl(), "http://localhost:8081/customer-portal");
-        assertLogged();
-
-        driver.navigate().to("http://localhost:8081/customer-portal/logout");
-        Assert.assertTrue(driver.getPageSource().contains("servlet logout ok"));
-        driver.navigate().to("http://localhost:8081/customer-portal");
-        Assert.assertTrue(driver.getCurrentUrl().startsWith(LOGIN_URL));
-
-        // Simulate another 4 seconds
-        Time.setOffset(8);
-
-        // assert not logged in customer-cookie-portal
-        driver.navigate().to("http://localhost:8081/customer-cookie-portal");
-        Assert.assertTrue(driver.getCurrentUrl().startsWith(LOGIN_URL));
-
-        // Change timeout back
-        Time.setOffset(0);
-        session = keycloakRule.startSession();
-        realm = session.realms().getRealmByName("demo");
-        realm.setAccessTokenLifespan(originalTokenTimeout);
-        session.getTransaction().commit();
-        session.close();
+        try {
+            // Set token timeout 1 sec
+            KeycloakSession session = keycloakRule.startSession();
+            RealmModel realm = session.realms().getRealmByName("demo");
+            int originalTokenTimeout = realm.getAccessTokenLifespan();
+            realm.setAccessTokenLifespan(3);
+            session.getTransaction().commit();
+            session.close();
+
+            // login to customer-cookie-portal
+            String tokenCookie1 = loginToCustomerCookiePortal();
+
+            // Simulate waiting 4 seconds (Running testsuite in real env like Wildfly or EAP may still require to do Thread.sleep to really wait 4 seconds...)
+            Time.setOffset(4);
+            //Thread.sleep(4000);
+
+            // assert cookie was refreshed
+            driver.navigate().to("http://localhost:8081/customer-cookie-portal");
+            Assert.assertEquals(driver.getCurrentUrl(), "http://localhost:8081/customer-cookie-portal");
+            assertLogged();
+            String tokenCookie2 = driver.manage().getCookieNamed(AdapterConstants.KEYCLOAK_ADAPTER_STATE_COOKIE).getValue();
+            Assert.assertNotEquals(tokenCookie1, tokenCookie2);
+
+            // login to 2nd app and logout from it
+            driver.navigate().to("http://localhost:8081/customer-portal");
+            Assert.assertEquals(driver.getCurrentUrl(), "http://localhost:8081/customer-portal");
+            assertLogged();
+
+            driver.navigate().to("http://localhost:8081/customer-portal/logout");
+            Assert.assertTrue(driver.getPageSource().contains("servlet logout ok"));
+            driver.navigate().to("http://localhost:8081/customer-portal");
+            Assert.assertTrue(driver.getCurrentUrl().startsWith(LOGIN_URL));
+
+            // Simulate another 4 seconds
+            Time.setOffset(8);
+
+            // assert not logged in customer-cookie-portal
+            driver.navigate().to("http://localhost:8081/customer-cookie-portal");
+            Assert.assertTrue(driver.getCurrentUrl().startsWith(LOGIN_URL));
+
+            // Change timeout back
+            Time.setOffset(0);
+            session = keycloakRule.startSession();
+            realm = session.realms().getRealmByName("demo");
+            realm.setAccessTokenLifespan(originalTokenTimeout);
+            session.getTransaction().commit();
+            session.close();
+        } finally {
+            Time.setOffset(0);
+        }
     }
 
     @Test
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 5961120..20926f4 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
@@ -256,35 +256,39 @@ public class ResetPasswordTest {
 
     @Test
     public void resetPasswordExpiredCode() throws IOException, MessagingException, InterruptedException {
-        loginPage.open();
-        loginPage.resetPassword();
+        try {
+            loginPage.open();
+            loginPage.resetPassword();
 
-        resetPasswordPage.assertCurrent();
+            resetPasswordPage.assertCurrent();
 
-        resetPasswordPage.changePassword("login-test");
+            resetPasswordPage.changePassword("login-test");
 
-        resetPasswordPage.assertCurrent();
+            resetPasswordPage.assertCurrent();
 
-        String sessionId = events.expectRequiredAction(EventType.SEND_RESET_PASSWORD).user(userId).detail(Details.USERNAME, "login-test").detail(Details.EMAIL, "login@test.com").assertEvent().getSessionId();
+            String sessionId = events.expectRequiredAction(EventType.SEND_RESET_PASSWORD).user(userId).detail(Details.USERNAME, "login-test").detail(Details.EMAIL, "login@test.com").assertEvent().getSessionId();
 
-        Assert.assertEquals("You should receive an email shortly with further instructions.", resetPasswordPage.getSuccessMessage());
+            Assert.assertEquals("You should receive an email shortly with further instructions.", resetPasswordPage.getSuccessMessage());
 
-        Assert.assertEquals(1, greenMail.getReceivedMessages().length);
+            Assert.assertEquals(1, greenMail.getReceivedMessages().length);
 
-        MimeMessage message = greenMail.getReceivedMessages()[0];
+            MimeMessage message = greenMail.getReceivedMessages()[0];
 
-        String body = (String) message.getContent();
-        String changePasswordUrl = MailUtil.getLink(body);
+            String body = (String) message.getContent();
+            String changePasswordUrl = MailUtil.getLink(body);
 
-        Time.setOffset(350);
+            Time.setOffset(350);
 
-        driver.navigate().to(changePasswordUrl.trim());
+            driver.navigate().to(changePasswordUrl.trim());
 
-        errorPage.assertCurrent();
+            errorPage.assertCurrent();
 
-        Assert.assertEquals("Invalid code, please login again through your application.", errorPage.getError());
+            Assert.assertEquals("Invalid code, please login again through your application.", errorPage.getError());
 
-        events.expectRequiredAction(EventType.RESET_PASSWORD).error("invalid_code").client((String) null).user((String) null).session((String) null).clearDetails().assertEvent();
+            events.expectRequiredAction(EventType.RESET_PASSWORD).error("invalid_code").client((String) null).user((String) null).session((String) null).clearDetails().assertEvent();
+        } finally {
+            Time.setOffset(0);
+        }
     }
 
     @Test
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/SyncProvidersTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/SyncProvidersTest.java
index 7ec43e6..f256ee0 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/SyncProvidersTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/SyncProvidersTest.java
@@ -24,6 +24,7 @@ import org.keycloak.testsuite.rule.LDAPRule;
 import org.keycloak.testutils.DummyUserFederationProviderFactory;
 import org.keycloak.testutils.LDAPEmbeddedServer;
 import org.keycloak.timer.TimerProvider;
+import org.keycloak.util.Time;
 import org.picketlink.idm.PartitionManager;
 import org.picketlink.idm.model.basic.User;
 
@@ -45,6 +46,9 @@ public class SyncProvidersTest {
 
         @Override
         public void config(RealmManager manager, RealmModel adminstrationRealm, RealmModel appRealm) {
+            // Other tests may left Time offset uncleared, which could cause issues
+            Time.setOffset(0);
+
             LDAPEmbeddedServer ldapServer = ldapRule.getEmbeddedServer();
             Map<String,String> ldapConfig = ldapServer.getLDAPConfig();
             ldapConfig.put(LDAPFederationProvider.SYNC_REGISTRATIONS, "false");
@@ -68,7 +72,7 @@ public class SyncProvidersTest {
             User user5 = LDAPUtils.addUser(partitionManager, "user5", "User5FN", "User5LN", "user5@email.org");
             LDAPUtils.updatePassword(partitionManager, user5, "Password5");
 
-            // Add properties provider
+            // Add dummy provider
             dummyModel = appRealm.addUserFederationProvider(DummyUserFederationProviderFactory.PROVIDER_NAME, new HashMap<String, String>(), 1, "test-dummy", -1, 1, 0);
         }
     });