keycloak-aplcache

Details

diff --git a/services/src/main/java/org/keycloak/authorization/admin/PolicyResourceService.java b/services/src/main/java/org/keycloak/authorization/admin/PolicyResourceService.java
index 003db4c..faafe11 100644
--- a/services/src/main/java/org/keycloak/authorization/admin/PolicyResourceService.java
+++ b/services/src/main/java/org/keycloak/authorization/admin/PolicyResourceService.java
@@ -70,6 +70,10 @@ public class PolicyResourceService {
     public Response update(String payload) {
         this.auth.requireManage();
 
+        if (policy == null) {
+            return Response.status(Status.NOT_FOUND).build();
+        }
+
         doUpdate(policy, payload);
 
         return Response.status(Status.CREATED).build();
@@ -102,6 +106,11 @@ public class PolicyResourceService {
     @DELETE
     public Response delete() {
         this.auth.requireManage();
+
+        if (policy == null) {
+            return Response.status(Status.NOT_FOUND).build();
+        }
+
         StoreFactory storeFactory = authorization.getStoreFactory();
         PolicyStore policyStore = storeFactory.getPolicyStore();
         PolicyProviderAdminService resource = getPolicyProviderAdminResource(policy.getType());
@@ -132,6 +141,11 @@ public class PolicyResourceService {
     @NoCache
     public Response findById() {
         this.auth.requireView();
+
+        if (policy == null) {
+            return Response.status(Status.NOT_FOUND).build();
+        }
+
         return Response.ok(toRepresentation(policy)).build();
     }
 
@@ -145,6 +159,11 @@ public class PolicyResourceService {
     @NoCache
     public Response getDependentPolicies() {
         this.auth.requireView();
+
+        if (policy == null) {
+            return Response.status(Status.NOT_FOUND).build();
+        }
+
         List<Policy> policies = authorization.getStoreFactory().getPolicyStore().findDependentPolicies(policy.getId(), resourceServer.getId());
 
         return Response.ok(policies.stream().map(policy -> {
@@ -164,6 +183,11 @@ public class PolicyResourceService {
     @NoCache
     public Response getScopes() {
         this.auth.requireView();
+
+        if (policy == null) {
+            return Response.status(Status.NOT_FOUND).build();
+        }
+
         return Response.ok(policy.getScopes().stream().map(scope -> {
             ScopeRepresentation representation = new ScopeRepresentation();
 
@@ -181,6 +205,10 @@ public class PolicyResourceService {
     public Response getResources() {
         this.auth.requireView();
 
+        if (policy == null) {
+            return Response.status(Status.NOT_FOUND).build();
+        }
+
         return Response.ok(policy.getResources().stream().map(resource -> {
             ResourceRepresentation representation = new ResourceRepresentation();
 
@@ -198,6 +226,10 @@ public class PolicyResourceService {
     public Response getAssociatedPolicies() {
         this.auth.requireView();
 
+        if (policy == null) {
+            return Response.status(Status.NOT_FOUND).build();
+        }
+
         return Response.ok(policy.getAssociatedPolicies().stream().map(policy -> {
             PolicyRepresentation representation1 = new PolicyRepresentation();
 
diff --git a/services/src/main/java/org/keycloak/authorization/admin/PolicyService.java b/services/src/main/java/org/keycloak/authorization/admin/PolicyService.java
index 3151b49..66a3d1a 100644
--- a/services/src/main/java/org/keycloak/authorization/admin/PolicyService.java
+++ b/services/src/main/java/org/keycloak/authorization/admin/PolicyService.java
@@ -72,7 +72,6 @@ public class PolicyService {
 
     @Path("{type}")
     public Object getResource(@PathParam("type") String type) {
-        this.auth.requireManage();
         PolicyProviderFactory providerFactory = authorization.getProviderFactory(type);
 
         if (providerFactory != null) {
@@ -81,10 +80,6 @@ public class PolicyService {
 
         Policy policy = authorization.getStoreFactory().getPolicyStore().findById(type, resourceServer.getId());
 
-        if (policy == null) {
-            return Response.status(Status.NOT_FOUND).build();
-        }
-
         return doCreatePolicyResource(policy);
     }