keycloak-uncached

Merge pull request #832 from mposolda/master Multitenancy

11/3/2014 7:44:25 AM

Changes

examples/multi-tenant/src/main/webapp/WEB-INF/jboss-ejb3.xml 31(+0 -31)

Details

diff --git a/examples/multi-tenant/src/main/java/org/keycloak/example/multitenant/control/PathBasedKeycloakConfigResolver.java b/examples/multi-tenant/src/main/java/org/keycloak/example/multitenant/control/PathBasedKeycloakConfigResolver.java
index 4aa2fea..44f7e78 100644
--- a/examples/multi-tenant/src/main/java/org/keycloak/example/multitenant/control/PathBasedKeycloakConfigResolver.java
+++ b/examples/multi-tenant/src/main/java/org/keycloak/example/multitenant/control/PathBasedKeycloakConfigResolver.java
@@ -37,6 +37,11 @@ public class PathBasedKeycloakConfigResolver implements KeycloakConfigResolver {
     @Override
     public KeycloakDeployment resolve(HttpFacade.Request request) {
         String path = request.getURI();
+        int multitenantIndex = path.indexOf("multitenant/");
+        if (multitenantIndex == -1) {
+            throw new IllegalStateException("Not able to resolve realm from the request path!");
+        }
+
         String realm = path.substring(path.indexOf("multitenant/")).split("/")[1];
         if (realm.contains("?")) {
             realm = realm.split("\\?")[0];
@@ -46,6 +51,9 @@ public class PathBasedKeycloakConfigResolver implements KeycloakConfigResolver {
         if (null == deployment) {
             // not found on the simple cache, try to load it from the file system
             InputStream is = getClass().getResourceAsStream("/" + realm + "-keycloak.json");
+            if (is == null) {
+                throw new IllegalStateException("Not able to find the file /" + realm + "-keycloak.json");
+            }
             deployment = KeycloakDeploymentBuilder.build(is);
             cache.put(realm, deployment);
         }