keycloak-uncached

Details

diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/UserPolicyManagementTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/UserPolicyManagementTest.java
index b4f78e0..783c477 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/UserPolicyManagementTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/client/authorization/UserPolicyManagementTest.java
@@ -16,12 +16,16 @@
  */
 package org.keycloak.testsuite.admin.client.authorization;
 
+import static com.sun.org.apache.xerces.internal.util.PropertyState.is;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
 import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 import javax.ws.rs.NotFoundException;
@@ -148,6 +152,45 @@ public class UserPolicyManagementTest extends AbstractPolicyManagementTest {
         assertTrue(genericConfig.getConfig().get("users").contains(user.getId()));
     }
 
+    @Test
+    public void failInvalidUser() {
+        AuthorizationResource authorization = getClient().authorization();
+
+        PolicyRepresentation policy = new PolicyRepresentation();
+
+        policy.setName("User Policy-Malformed");
+        policy.setDescription("Description of a malformed user Policy");
+        policy.setDecisionStrategy(DecisionStrategy.UNANIMOUS);
+        policy.setType("user");
+
+        Map<String, String> config = new HashMap<>();
+
+        // here we put something invalid ... a user ID would be needed
+        config.put("users", "[\"doesnotexist\"]");
+
+        policy.setConfig(config);
+
+        Response response = authorization.policies().create(policy);
+        assertEquals(Response.Status.INTERNAL_SERVER_ERROR, response.getStatusInfo());
+        response.close();
+
+        config.put("users", "");
+
+        policy.setConfig(config);
+
+        response = authorization.policies().create(policy);
+        assertEquals(Response.Status.INTERNAL_SERVER_ERROR, response.getStatusInfo());
+        response.close();
+
+        config.clear();
+
+        policy.setConfig(config);
+
+        response = authorization.policies().create(policy);
+        assertEquals(Response.Status.INTERNAL_SERVER_ERROR, response.getStatusInfo());
+        response.close();
+    }
+
     private void assertCreated(AuthorizationResource authorization, UserPolicyRepresentation representation) {
         UserPoliciesResource permissions = authorization.policies().user();
         Response response = permissions.create(representation);