keycloak-uncached

cors

10/18/2013 4:47:33 PM

Details

diff --git a/core/src/main/java/org/keycloak/representations/SkeletonKeyToken.java b/core/src/main/java/org/keycloak/representations/SkeletonKeyToken.java
index 3458d70..817c9f5 100755
--- a/core/src/main/java/org/keycloak/representations/SkeletonKeyToken.java
+++ b/core/src/main/java/org/keycloak/representations/SkeletonKeyToken.java
@@ -4,10 +4,7 @@ import org.codehaus.jackson.annotate.JsonIgnore;
 import org.codehaus.jackson.annotate.JsonProperty;
 import org.jboss.resteasy.jwt.JsonWebToken;
 
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 /**
  * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
@@ -57,6 +54,8 @@ public class SkeletonKeyToken extends JsonWebToken {
     @JsonProperty("trusted-certs")
     protected Set<String> trustedCertificates;
 
+    @JsonProperty("allowed-origins")
+    protected List<String> allowsOrigins;
 
     @JsonProperty("realm_access")
     protected Access realmAccess;
@@ -144,6 +143,14 @@ public class SkeletonKeyToken extends JsonWebToken {
         return (SkeletonKeyToken) super.type(type);
     }
 
+    public List<String> getAllowsOrigins() {
+        return allowsOrigins;
+    }
+
+    public void setAllowsOrigins(List<String> allowsOrigins) {
+        this.allowsOrigins = allowsOrigins;
+    }
+
     public Access getRealmAccess() {
         return realmAccess;
     }
diff --git a/services/src/main/java/org/keycloak/services/resources/SaasService.java b/services/src/main/java/org/keycloak/services/resources/SaasService.java
index b8d2e82..38a4991 100755
--- a/services/src/main/java/org/keycloak/services/resources/SaasService.java
+++ b/services/src/main/java/org/keycloak/services/resources/SaasService.java
@@ -95,6 +95,33 @@ public class SaasService {
         }
     }
 
+    @Path("ping")
+    @GET
+    @NoCache
+    @Produces("text/plain")
+    public String ping(@Context HttpHeaders headers) {
+        logger.info("************** GET PING");
+        for (String header : headers.getRequestHeaders().keySet()) {
+            logger.info("   " + header + ": " + headers.getHeaderString(header));
+        }
+        return "ping";
+    }
+
+    @Path("ping")
+    @OPTIONS
+    @NoCache
+    @Produces("text/plain")
+    public Response optionsPing(@Context HttpHeaders headers) {
+        logger.info("************** OPTIONS PING");
+        for (String header : headers.getRequestHeaders().keySet()) {
+            logger.info("   " + header + ": " + headers.getHeaderString(header));
+        }
+        return Response.ok()
+               .header("Access-Control-Allow-Origin", "*")
+               .header("Access-Control-Allow-Headers", HttpHeaders.AUTHORIZATION).build();
+    }
+
+
     @Path("keepalive")
     @GET
     @NoCache