keycloak-aplcache

KEYCLOAK-2134 login-status-iframe.html without any parameter

11/25/2015 4:54:08 PM

Details

diff --git a/services/src/main/java/org/keycloak/protocol/oidc/endpoints/LoginStatusIframeEndpoint.java b/services/src/main/java/org/keycloak/protocol/oidc/endpoints/LoginStatusIframeEndpoint.java
index abea565..3340c35 100644
--- a/services/src/main/java/org/keycloak/protocol/oidc/endpoints/LoginStatusIframeEndpoint.java
+++ b/services/src/main/java/org/keycloak/protocol/oidc/endpoints/LoginStatusIframeEndpoint.java
@@ -12,6 +12,7 @@ import org.keycloak.common.util.UriUtils;
 import javax.ws.rs.GET;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
+import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.CacheControl;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
@@ -38,13 +39,17 @@ public class LoginStatusIframeEndpoint {
     @Produces(MediaType.TEXT_HTML)
     public Response getLoginStatusIframe(@QueryParam("client_id") String client_id,
                                          @QueryParam("origin") String origin) {
+        if (client_id == null || origin == null) {
+            throw new WebApplicationException(Response.Status.BAD_REQUEST);
+        }
+
         if (!UriUtils.isOrigin(origin)) {
-            throw new BadRequestException("Invalid origin");
+            throw new WebApplicationException(Response.Status.BAD_REQUEST);
         }
 
         ClientModel client = realm.getClientByClientId(client_id);
         if (client == null) {
-            throw new NotFoundException("could not find client");
+            throw new WebApplicationException(Response.Status.BAD_REQUEST);
         }
 
         InputStream is = getClass().getClassLoader().getResourceAsStream("login-status-iframe.html");
@@ -71,7 +76,7 @@ public class LoginStatusIframeEndpoint {
         }
 
         if (!valid) {
-            throw new BadRequestException("Invalid origin");
+            throw new WebApplicationException(Response.Status.BAD_REQUEST);
         }
 
         try {
@@ -84,7 +89,7 @@ public class LoginStatusIframeEndpoint {
 
             return Response.ok(file).cacheControl(cacheControl).build();
         } catch (IOException e) {
-            throw new RuntimeException(e);
+            throw new WebApplicationException(e, Response.Status.BAD_REQUEST);
         }
     }