keycloak-aplcache

Fix oracle

3/25/2015 8:37:33 AM

Details

diff --git a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.2.0.Beta1.xml b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.2.0.Beta1.xml
index 9459ca3..079bee8 100755
--- a/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.2.0.Beta1.xml
+++ b/connections/jpa-liquibase/src/main/resources/META-INF/jpa-changelog-1.2.0.Beta1.xml
@@ -154,11 +154,9 @@
 
         <!-- Remove obsolete 'social' stuff -->
         <dropForeignKeyConstraint baseTableName="USER_SOCIAL_LINK" constraintName="FK_68CJYS5UWM55UY823Y75XG4OM" />
-        <dropPrimaryKey tableName="USER_SOCIAL_LINK" constraintName="CONSTRAINT_3" />
-        <dropTable tableName="USER_SOCIAL_LINK" />
+        <dropTable tableName="USER_SOCIAL_LINK" cascadeConstraints="true" />
         <dropForeignKeyConstraint baseTableName="REALM_SOCIAL_CONFIG" constraintName="FK_SV5I3C2TI7G0G922FGE683SOV" />
-        <dropPrimaryKey tableName="REALM_SOCIAL_CONFIG" constraintName="CONSTRAINT_1" />
-        <dropTable tableName="REALM_SOCIAL_CONFIG" />
+        <dropTable tableName="REALM_SOCIAL_CONFIG" cascadeConstraints="true" />
 
     </changeSet>
 </databaseChangeLog>
diff --git a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/MemoryUserCache.java b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/MemoryUserCache.java
index 360a02d..dcbf2c9 100755
--- a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/MemoryUserCache.java
+++ b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/MemoryUserCache.java
@@ -25,7 +25,9 @@ public class MemoryUserCache implements UserCache {
 
             @Override
             public CachedUser put(String key, CachedUser value) {
-                usersByUsername.put(value.getUsername(), value);
+                if (value.getUsername() != null) {
+                    usersByUsername.put(value.getUsername(), value);
+                }
                 if (value.getEmail() != null) {
                     usersByEmail.put(value.getEmail(), value);
                 }
@@ -57,7 +59,7 @@ public class MemoryUserCache implements UserCache {
             }
 
             private void removeUser(CachedUser value) {
-                usersByUsername.remove(value.getUsername());
+                if (value.getUsername() != null) usersByUsername.remove(value.getUsername());
                 if (value.getEmail() != null) usersByEmail.remove(value.getEmail());
             }
         }
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/AbstractIdentityProviderTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/AbstractIdentityProviderTest.java
index e6dbfcd..3fa93f1 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/AbstractIdentityProviderTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/AbstractIdentityProviderTest.java
@@ -153,7 +153,7 @@ public abstract class AbstractIdentityProviderTest {
 
             UserModel federatedUser = assertSuccessfulAuthentication(identityProviderModel, "test-user-noemail", null);
 
-            federatedUser.getRequiredActions().contains(RequiredAction.VERIFY_EMAIL);
+            assertTrue(federatedUser.getRequiredActions().contains(RequiredAction.VERIFY_EMAIL));
 
         } finally {
             getRealm().setVerifyEmail(false);
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/IdentityProviderHintTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/IdentityProviderHintTest.java
index 20be993..9681873 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/IdentityProviderHintTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/IdentityProviderHintTest.java
@@ -38,6 +38,11 @@ public class IdentityProviderHintTest {
         protected void configure(KeycloakSession session, RealmManager manager, RealmModel adminRealm) {
             server.importRealm(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-kc-oidc.json"));
         }
+
+        @Override
+        protected String[] getTestRealms() {
+            return new String[] { "realm-with-oidc-identity-provider" };
+        }
     };
 
     @Rule
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/SAMLKeyCloakServerBrokerBasicTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/SAMLKeyCloakServerBrokerBasicTest.java
index 4b235eb..ffddbd2 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/SAMLKeyCloakServerBrokerBasicTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/SAMLKeyCloakServerBrokerBasicTest.java
@@ -19,6 +19,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 /**
@@ -55,9 +56,12 @@ public class SAMLKeyCloakServerBrokerBasicTest extends AbstractIdentityProviderT
         if (identityProviderModel.isUpdateProfileFirstLogin()) {
             super.doAssertFederatedUser(federatedUser, identityProviderModel, expectedEmail);
         } else {
-            if (expectedEmail == null)
-                expectedEmail = "";
-            assertEquals(expectedEmail, federatedUser.getEmail());
+            if (expectedEmail == null) {
+                // Need to handle differences for various databases (like Oracle)
+                assertTrue(federatedUser.getEmail() == null || federatedUser.getEmail().equals(""));
+            } else {
+                assertEquals(expectedEmail, federatedUser.getEmail());
+            }
             assertNull(federatedUser.getFirstName());
             assertNull(federatedUser.getLastName());
         }
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/SAMLKeyCloakServerBrokerWithSignatureTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/SAMLKeyCloakServerBrokerWithSignatureTest.java
index 5c7ac76..bef306c 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/SAMLKeyCloakServerBrokerWithSignatureTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/SAMLKeyCloakServerBrokerWithSignatureTest.java
@@ -18,6 +18,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 /**
@@ -54,9 +55,12 @@ public class SAMLKeyCloakServerBrokerWithSignatureTest extends AbstractIdentityP
         if (identityProviderModel.isUpdateProfileFirstLogin()) {
             super.doAssertFederatedUser(federatedUser, identityProviderModel, expectedEmail);
         } else {
-            if (expectedEmail == null)
-                expectedEmail = "";
-            assertEquals(expectedEmail, federatedUser.getEmail());
+            if (expectedEmail == null) {
+                // Need to handle differences for various databases (like Oracle)
+                assertTrue(federatedUser.getEmail() == null || federatedUser.getEmail().equals(""));
+            } else {
+                assertEquals(expectedEmail, federatedUser.getEmail());
+            }
             assertNull(federatedUser.getFirstName());
             assertNull(federatedUser.getLastName());
         }