keycloak-aplcache

Tweaks to file provider

3/9/2015 11:23:54 AM

Details

diff --git a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
index 5265aef..90b00dd 100755
--- a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
+++ b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
@@ -727,7 +727,6 @@ public class RepresentationToModel {
             hashedCred.setHashIterations(cred.getHashIterations());
             try {
                 if (cred.getSalt() != null) hashedCred.setSalt(Base64.decode(cred.getSalt()));
-//                hashedCred.setSalt(Base64.decode(cred.getSalt()));
             } catch (IOException ioe) {
                 throw new RuntimeException(ioe);
             }
diff --git a/model/file/src/main/java/org/keycloak/models/file/adapter/RealmAdapter.java b/model/file/src/main/java/org/keycloak/models/file/adapter/RealmAdapter.java
index eab6ecb..c2cfab8 100755
--- a/model/file/src/main/java/org/keycloak/models/file/adapter/RealmAdapter.java
+++ b/model/file/src/main/java/org/keycloak/models/file/adapter/RealmAdapter.java
@@ -1028,13 +1028,17 @@ public class RealmAdapter implements RealmModel {
 
     @Override
     public void setMasterAdminApp(ApplicationModel app) {
-        if (app == null) throw new NullPointerException("app == null");
-        String appId = app.getId();
-        if (appId == null) {
-            throw new IllegalStateException("Master Admin app not initialized.");
+        if (app == null) {
+            realm.setAdminAppId(null);
+            this.masterAdminApp = null;
+        } else {
+            String appId = app.getId();
+            if (appId == null) {
+                throw new IllegalStateException("Master Admin app not initialized.");
+            }
+            realm.setAdminAppId(appId);
+            this.masterAdminApp = app;
         }
-        realm.setAdminAppId(appId);
-        this.masterAdminApp = app;
     }
 
     @Override
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/BrokerKeyCloakRule.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/BrokerKeyCloakRule.java
index 32d1f84..deb2611 100644
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/BrokerKeyCloakRule.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/BrokerKeyCloakRule.java
@@ -24,8 +24,6 @@ import org.keycloak.testsuite.broker.util.UserSessionStatusServlet;
 import org.keycloak.testsuite.rule.AbstractKeycloakRule;
 
 import java.net.URL;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.testutils.KeycloakServer;
 
 /**
  * @author pedroigor
@@ -34,9 +32,7 @@ public class BrokerKeyCloakRule extends AbstractKeycloakRule {
 
     @Override
     protected void configure(KeycloakSession session, RealmManager manager, RealmModel adminRealm) {
-        //server.importRealm(getClass().getResourceAsStream("/broker-test/test-realm-with-broker.json"));
-        RealmRepresentation realmWithBroker = KeycloakServer.loadJson(getClass().getResourceAsStream("/broker-test/test-realm-with-broker.json"), RealmRepresentation.class);
-        manager.importRealm(realmWithBroker);
+        server.importRealm(getClass().getResourceAsStream("/broker-test/test-realm-with-broker.json"));
         URL url = getClass().getResource("/broker-test/test-app-keycloak.json");
         deployApplication("test-app", "/test-app", UserSessionStatusServlet.class, url.getPath(), "manager");
         deployApplication("test-app-allowed-providers", "/test-app-allowed-providers", UserSessionStatusServlet.class, url.getPath(), "manager");
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 d9c6730..b46617e 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
@@ -17,7 +17,6 @@ import org.openqa.selenium.WebDriver;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
-import org.keycloak.representations.idm.RealmRepresentation;
 
 /**
  * @author pedroigor
@@ -37,9 +36,7 @@ public class IdentityProviderHintTest {
 
         @Override
         protected void configure(KeycloakSession session, RealmManager manager, RealmModel adminRealm) {
-            //server.importRealm(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-kc-oidc.json"));
-            RealmRepresentation realmWithOIDC = KeycloakServer.loadJson(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-kc-oidc.json"), RealmRepresentation.class);
-            manager.importRealm(realmWithOIDC);
+            server.importRealm(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-kc-oidc.json"));
         }
     };
 
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/OIDCKeyCloakServerBrokerBasicTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/OIDCKeyCloakServerBrokerBasicTest.java
index 9b84345..66e4b71 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/OIDCKeyCloakServerBrokerBasicTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/broker/OIDCKeyCloakServerBrokerBasicTest.java
@@ -15,7 +15,6 @@ import java.io.IOException;
 
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
-import org.keycloak.representations.idm.RealmRepresentation;
 
 /**
  * @author pedroigor
@@ -32,9 +31,7 @@ public class OIDCKeyCloakServerBrokerBasicTest extends AbstractIdentityProviderT
 
         @Override
         protected void configure(KeycloakSession session, RealmManager manager, RealmModel adminRealm) {
-            //server.importRealm(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-kc-oidc.json"));
-            RealmRepresentation realmWithOIDC = KeycloakServer.loadJson(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-kc-oidc.json"), RealmRepresentation.class);
-            manager.importRealm(realmWithOIDC);
+            server.importRealm(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-kc-oidc.json"));
         }
     };
 
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 50f7b98..7783665 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,7 +19,6 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
-import org.keycloak.representations.idm.RealmRepresentation;
 
 /**
  * @author pedroigor
@@ -36,9 +35,7 @@ public class SAMLKeyCloakServerBrokerBasicTest extends AbstractIdentityProviderT
 
         @Override
         protected void configure(KeycloakSession session, RealmManager manager, RealmModel adminRealm) {
-            //server.importRealm(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-saml.json"));
-            RealmRepresentation realmWithSAML = KeycloakServer.loadJson(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-saml.json"), RealmRepresentation.class);
-            manager.importRealm(realmWithSAML);
+            server.importRealm(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-saml.json"));
         }
     };
 
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 d1886f9..e387097 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
@@ -19,7 +19,6 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.fail;
-import org.keycloak.representations.idm.RealmRepresentation;
 
 /**
  * @author pedroigor
@@ -36,9 +35,7 @@ public class SAMLKeyCloakServerBrokerWithSignatureTest extends AbstractIdentityP
 
         @Override
         protected void configure(KeycloakSession session, RealmManager manager, RealmModel adminRealm) {
-            //server.importRealm(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-saml-with-signature.json"));
-            RealmRepresentation realmWithOIDC = KeycloakServer.loadJson(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-saml-with-signature.json"), RealmRepresentation.class);
-            manager.importRealm(realmWithOIDC);
+            server.importRealm(getClass().getResourceAsStream("/broker-test/test-broker-realm-with-saml-with-signature.json"));
         }
     };
 
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/AdapterTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/AdapterTest.java
index cf5dfbc..a2ebb91 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/AdapterTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/AdapterTest.java
@@ -20,6 +20,9 @@ import org.keycloak.models.utils.RepresentationToModel;
 import org.keycloak.representations.idm.CredentialRepresentation;
 import org.keycloak.services.managers.RealmManager;
 
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
@@ -44,11 +47,17 @@ public class AdapterTest extends AbstractModelTest {
         realmModel.setAccessCodeLifespanUserAction(600);
         realmModel.setEnabled(true);
         realmModel.setName("JUGGLER");
- //       realmModel.setPrivateKeyPem("0234234");
- //       realmModel.setPublicKeyPem("0234234");
+
+        KeyPair keyPair = generateKeypair();
+
+        realmModel.setPrivateKey(keyPair.getPrivate());
+        realmModel.setPublicKey(keyPair.getPublic());
         realmModel.setAccessTokenLifespan(1000);
         realmModel.addDefaultRole("foo");
 
+        session.getTransaction().commit();
+        resetSession();
+
         realmModel = realmManager.getRealm(realmModel.getId());
         assertNotNull(realmModel);
         Assert.assertEquals(realmModel.getAccessCodeLifespan(), 100);
@@ -56,8 +65,8 @@ public class AdapterTest extends AbstractModelTest {
         Assert.assertEquals(realmModel.getAccessTokenLifespan(), 1000);
         Assert.assertEquals(realmModel.isEnabled(), true);
         Assert.assertEquals(realmModel.getName(), "JUGGLER");
-     //   Assert.assertEquals(realmModel.getPrivateKeyPem(), "0234234");
-     //   Assert.assertEquals(realmModel.getPublicKeyPem(), "0234234");
+        Assert.assertArrayEquals(realmModel.getPrivateKey().getEncoded(), keyPair.getPrivate().getEncoded());
+        Assert.assertArrayEquals(realmModel.getPublicKey().getEncoded(), keyPair.getPublic().getEncoded());
         Assert.assertEquals(1, realmModel.getDefaultRoles().size());
         Assert.assertEquals("foo", realmModel.getDefaultRoles().get(0));
     }
@@ -69,8 +78,9 @@ public class AdapterTest extends AbstractModelTest {
         realmModel.setAccessCodeLifespanUserAction(600);
         realmModel.setEnabled(true);
         realmModel.setName("JUGGLER");
-    //    realmModel.setPrivateKeyPem("0234234");
-    //    realmModel.setPublicKeyPem("0234234");
+        KeyPair keyPair = generateKeypair();
+        realmModel.setPrivateKey(keyPair.getPrivate());
+        realmModel.setPublicKey(keyPair.getPublic());
         realmModel.setAccessTokenLifespan(1000);
         realmModel.addDefaultRole("foo");
 
@@ -81,8 +91,8 @@ public class AdapterTest extends AbstractModelTest {
         Assert.assertEquals(realmModel.getAccessTokenLifespan(), 1000);
         Assert.assertEquals(realmModel.isEnabled(), true);
         Assert.assertEquals(realmModel.getName(), "JUGGLER");
-    //    Assert.assertEquals(realmModel.getPrivateKeyPem(), "0234234");
-    //    Assert.assertEquals(realmModel.getPublicKeyPem(), "0234234");
+        Assert.assertArrayEquals(realmModel.getPrivateKey().getEncoded(), keyPair.getPrivate().getEncoded());
+        Assert.assertArrayEquals(realmModel.getPublicKey().getEncoded(), keyPair.getPublic().getEncoded());
         Assert.assertEquals(1, realmModel.getDefaultRoles().size());
         Assert.assertEquals("foo", realmModel.getDefaultRoles().get(0));
 
@@ -90,7 +100,7 @@ public class AdapterTest extends AbstractModelTest {
 
         commit();
         List<RealmModel> realms = model.getRealms();
-    //    Assert.assertEquals(realms.size(), 2);
+        Assert.assertEquals(realms.size(), 2);
     }
 
 
@@ -738,4 +748,8 @@ public class AdapterTest extends AbstractModelTest {
         resetSession();
     }
 
+    private KeyPair generateKeypair() throws NoSuchAlgorithmException {
+        return KeyPairGenerator.getInstance("RSA").generateKeyPair();
+    }
+
 }
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 d1e37b3..fbd47bc 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
@@ -8,6 +8,7 @@ import io.undertow.servlet.api.ServletInfo;
 import io.undertow.servlet.api.WebResourceCollection;
 import org.jboss.resteasy.spi.ResteasyDeployment;
 import org.junit.rules.ExternalResource;
+import org.junit.rules.TemporaryFolder;
 import org.keycloak.Config;
 import org.keycloak.adapters.KeycloakConfigResolver;
 import org.keycloak.models.KeycloakSession;
@@ -37,9 +38,15 @@ import java.util.Map;
  */
 public abstract class AbstractKeycloakRule extends ExternalResource {
 
+    protected TemporaryFolder temporaryFolder;
+
     protected KeycloakServer server;
 
     protected void before() throws Throwable {
+        temporaryFolder = new TemporaryFolder();
+        temporaryFolder.create();
+        System.setProperty("keycloak.tmp.dir", temporaryFolder.newFolder().getAbsolutePath());
+
         server = new KeycloakServer();
 
         configureServer(server);
@@ -210,6 +217,9 @@ public abstract class AbstractKeycloakRule extends ExternalResource {
         removeTestRealms();
         stopServer();
         Time.setOffset(0);
+
+        temporaryFolder.delete();
+        System.getProperties().remove("keycloak.tmp.dir");
     }
 
     protected void removeTestRealms() {