keycloak-uncached

Merge pull request #4953 from pedroigor/KEYCLOAK-6164 [KEYCLOAK-6164]

1/31/2018 3:18:50 PM

Details

diff --git a/authz/client/pom.xml b/authz/client/pom.xml
index 4c858a9..f5a9cf3 100644
--- a/authz/client/pom.xml
+++ b/authz/client/pom.xml
@@ -18,8 +18,6 @@
     <description>KeyCloak AuthZ: Client API</description>
 
     <properties>
-        <maven.compiler.source>1.7</maven.compiler.source>
-        <maven.compiler.target>1.7</maven.compiler.target>
         <keycloak.osgi.export>
             org.keycloak.authorization.client.*
         </keycloak.osgi.export>
diff --git a/authz/client/src/main/java/org/keycloak/authorization/client/AuthzClient.java b/authz/client/src/main/java/org/keycloak/authorization/client/AuthzClient.java
index cb7389a..1113fd2 100644
--- a/authz/client/src/main/java/org/keycloak/authorization/client/AuthzClient.java
+++ b/authz/client/src/main/java/org/keycloak/authorization/client/AuthzClient.java
@@ -30,7 +30,7 @@ import org.keycloak.util.JsonSerialization;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
-import java.util.function.Supplier;
+import java.util.concurrent.Callable;
 
 /**
  * <p>This is class serves as an entry point for clients looking for access to Keycloak Authorization Services.
@@ -40,7 +40,7 @@ import java.util.function.Supplier;
 public class AuthzClient {
 
     private final Http http;
-    private Supplier<String> patSupplier;
+    private Callable<String> patSupplier;
 
     public static AuthzClient create() {
         InputStream configStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("keycloak.json");
@@ -141,13 +141,13 @@ public class AuthzClient {
         return this.deployment;
     }
 
-    private Supplier<String> createPatSupplier() {
+    private Callable<String> createPatSupplier() {
         if (patSupplier == null) {
-            patSupplier = new Supplier<String>() {
+            patSupplier = new Callable<String>() {
                 AccessTokenResponse clientToken = obtainAccessToken();
 
                 @Override
-                public String get() {
+                public String call() {
                     String token = clientToken.getToken();
 
                     try {
diff --git a/authz/client/src/main/java/org/keycloak/authorization/client/resource/PermissionResource.java b/authz/client/src/main/java/org/keycloak/authorization/client/resource/PermissionResource.java
index 5aaccda..785a3a6 100644
--- a/authz/client/src/main/java/org/keycloak/authorization/client/resource/PermissionResource.java
+++ b/authz/client/src/main/java/org/keycloak/authorization/client/resource/PermissionResource.java
@@ -19,7 +19,7 @@ package org.keycloak.authorization.client.resource;
 
 import static org.keycloak.authorization.client.util.Throwables.handleAndWrapException;
 
-import java.util.function.Supplier;
+import java.util.concurrent.Callable;
 
 import org.keycloak.authorization.client.representation.PermissionRequest;
 import org.keycloak.authorization.client.representation.PermissionResponse;
@@ -32,9 +32,9 @@ import org.keycloak.util.JsonSerialization;
 public class PermissionResource {
 
     private final Http http;
-    private final Supplier<String> pat;
+    private final Callable<String> pat;
 
-    public PermissionResource(Http http, Supplier<String> pat) {
+    public PermissionResource(Http http, Callable<String> pat) {
         this.http = http;
         this.pat = pat;
     }
@@ -42,7 +42,7 @@ public class PermissionResource {
     public PermissionResponse forResource(PermissionRequest request) {
         try {
             return this.http.<PermissionResponse>post("/authz/protection/permission")
-                    .authorizationBearer(this.pat.get())
+                    .authorizationBearer(this.pat.call())
                     .json(JsonSerialization.writeValueAsBytes(request))
                     .response().json(PermissionResponse.class).execute();
         } catch (Exception cause) {
diff --git a/authz/client/src/main/java/org/keycloak/authorization/client/resource/ProtectedResource.java b/authz/client/src/main/java/org/keycloak/authorization/client/resource/ProtectedResource.java
index d774c3d..fcf1e43 100644
--- a/authz/client/src/main/java/org/keycloak/authorization/client/resource/ProtectedResource.java
+++ b/authz/client/src/main/java/org/keycloak/authorization/client/resource/ProtectedResource.java
@@ -20,7 +20,7 @@ package org.keycloak.authorization.client.resource;
 import static org.keycloak.authorization.client.util.Throwables.handleAndWrapException;
 
 import java.util.Set;
-import java.util.function.Supplier;
+import java.util.concurrent.Callable;
 
 import org.keycloak.authorization.client.representation.RegistrationResponse;
 import org.keycloak.authorization.client.representation.ResourceRepresentation;
@@ -33,9 +33,9 @@ import org.keycloak.util.JsonSerialization;
 public class ProtectedResource {
 
     private final Http http;
-    private final Supplier<String> pat;
+    private final Callable<String> pat;
 
-    public ProtectedResource(Http http, Supplier<String> pat) {
+    public ProtectedResource(Http http, Callable<String> pat) {
         this.http = http;
         this.pat = pat;
     }
@@ -43,7 +43,7 @@ public class ProtectedResource {
     public RegistrationResponse create(ResourceRepresentation resource) {
         try {
             return this.http.<RegistrationResponse>post("/authz/protection/resource_set")
-                    .authorizationBearer(this.pat.get())
+                    .authorizationBearer(this.pat.call())
                     .json(JsonSerialization.writeValueAsBytes(resource))
                     .response().json(RegistrationResponse.class).execute();
         } catch (Exception cause) {
@@ -54,7 +54,7 @@ public class ProtectedResource {
     public void update(ResourceRepresentation resource) {
         try {
             this.http.<RegistrationResponse>put("/authz/protection/resource_set/" + resource.getId())
-                    .authorizationBearer(this.pat.get())
+                    .authorizationBearer(this.pat.call())
                     .json(JsonSerialization.writeValueAsBytes(resource)).execute();
         } catch (Exception cause) {
             throw handleAndWrapException("Could not update resource", cause);
@@ -64,7 +64,7 @@ public class ProtectedResource {
     public RegistrationResponse findById(String id) {
         try {
             return this.http.<RegistrationResponse>get("/authz/protection/resource_set/" + id)
-                    .authorizationBearer(this.pat.get())
+                    .authorizationBearer(this.pat.call())
                     .response().json(RegistrationResponse.class).execute();
         } catch (Exception cause) {
             throw handleAndWrapException("Could not find resource", cause);
@@ -74,7 +74,7 @@ public class ProtectedResource {
     public Set<String> findByFilter(String filter) {
         try {
             return this.http.<Set>get("/authz/protection/resource_set")
-                    .authorizationBearer(this.pat.get())
+                    .authorizationBearer(this.pat.call())
                     .param("filter", filter)
                     .response().json(Set.class).execute();
         } catch (Exception cause) {
@@ -85,7 +85,7 @@ public class ProtectedResource {
     public Set<String> findAll() {
         try {
             return this.http.<Set>get("/authz/protection/resource_set")
-                    .authorizationBearer(this.pat.get())
+                    .authorizationBearer(this.pat.call())
                     .response().json(Set.class).execute();
         } catch (Exception cause) {
             throw handleAndWrapException("Could not find resource", cause);
@@ -95,7 +95,7 @@ public class ProtectedResource {
     public void delete(String id) {
         try {
             this.http.delete("/authz/protection/resource_set/" + id)
-                    .authorizationBearer(this.pat.get())
+                    .authorizationBearer(this.pat.call())
                     .execute();
         } catch (Exception cause) {
             throw handleAndWrapException("Could not delete resource", cause);
diff --git a/authz/client/src/main/java/org/keycloak/authorization/client/resource/ProtectionResource.java b/authz/client/src/main/java/org/keycloak/authorization/client/resource/ProtectionResource.java
index fd3bee9..3d2eb2c 100644
--- a/authz/client/src/main/java/org/keycloak/authorization/client/resource/ProtectionResource.java
+++ b/authz/client/src/main/java/org/keycloak/authorization/client/resource/ProtectionResource.java
@@ -17,7 +17,7 @@
  */
 package org.keycloak.authorization.client.resource;
 
-import java.util.function.Supplier;
+import java.util.concurrent.Callable;
 
 import org.keycloak.authorization.client.representation.TokenIntrospectionResponse;
 import org.keycloak.authorization.client.util.Http;
@@ -27,10 +27,10 @@ import org.keycloak.authorization.client.util.Http;
  */
 public class ProtectionResource {
 
-    private final Supplier<String> pat;
+    private final Callable<String> pat;
     private final Http http;
 
-    public ProtectionResource(Http http, Supplier<String> pat) {
+    public ProtectionResource(Http http, Callable<String> pat) {
         if (pat == null) {
             throw new RuntimeException("No access token was provided when creating client for Protection API.");
         }
diff --git a/authz/policy/pom.xml b/authz/policy/pom.xml
index 9285778..19f6c91 100644
--- a/authz/policy/pom.xml
+++ b/authz/policy/pom.xml
@@ -17,6 +17,11 @@
     <name>KeyCloak AuthZ: Provider Parent</name>
     <description>KeyCloak AuthZ: Provider Parent</description>
 
+    <properties>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+    </properties>
+
     <modules>
         <module>common</module>
         <module>drools</module>

authz/pom.xml 6(+0 -6)

diff --git a/authz/pom.xml b/authz/pom.xml
index c466d6f..448b04a 100644
--- a/authz/pom.xml
+++ b/authz/pom.xml
@@ -21,10 +21,4 @@
         <module>policy</module>
         <module>client</module>
     </modules>
-
-    <properties>
-        <maven.compiler.source>1.8</maven.compiler.source>
-        <maven.compiler.target>1.8</maven.compiler.target>
-    </properties>
-
 </project>
\ No newline at end of file
diff --git a/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/admin/AdminAlbumService.java b/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/admin/AdminAlbumService.java
index a9a53f4..684f216 100644
--- a/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/admin/AdminAlbumService.java
+++ b/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/admin/AdminAlbumService.java
@@ -46,7 +46,14 @@ public class AdminAlbumService {
         List<Album> result = this.entityManager.createQuery("from Album").getResultList();
 
         for (Album album : result) {
-            albums.computeIfAbsent(album.getUserId(), key -> new ArrayList<>()).add(album);
+            List<Album> userAlbums = albums.get(album.getUserId());
+
+            if (userAlbums == null) {
+                userAlbums = new ArrayList<>();
+                albums.put(album.getUserId(), userAlbums);
+            }
+
+            userAlbums.add(album);
         }
 
         return Response.ok(albums).build();
diff --git a/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/album/AlbumService.java b/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/album/AlbumService.java
index e84e24d..056ff05 100644
--- a/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/album/AlbumService.java
+++ b/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/album/AlbumService.java
@@ -28,6 +28,7 @@ import java.security.Principal;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
 @Path("/album")
 @Transaction
@@ -47,6 +48,7 @@ public class AlbumService {
     public Response create(Album newAlbum) {
         Principal userPrincipal = request.getUserPrincipal();
 
+        newAlbum.setId(UUID.randomUUID().toString());
         newAlbum.setUserId(userPrincipal.getName());
 
         Query queryDuplicatedAlbum = this.entityManager.createQuery("from Album where name = :name and userId = :userId");
@@ -68,7 +70,7 @@ public class AlbumService {
     @Path("{id}")
     @DELETE
     public Response delete(@PathParam("id") String id) {
-        Album album = this.entityManager.find(Album.class, Long.valueOf(id));
+        Album album = this.entityManager.find(Album.class, id);
 
         try {
             deleteProtectedResource(album);
@@ -90,7 +92,7 @@ public class AlbumService {
     @Path("{id}")
     @Produces("application/json")
     public Response findById(@PathParam("id") String id) {
-        List result = this.entityManager.createQuery("from Album where id = :id").setParameter("id", Long.valueOf(id)).getResultList();
+        List result = this.entityManager.createQuery("from Album where id = :id").setParameter("id", id).getResultList();
 
         if (result.isEmpty()) {
             return Response.status(Status.NOT_FOUND).build();
diff --git a/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/entity/Album.java b/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/entity/Album.java
index 978bdea..990595e 100644
--- a/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/entity/Album.java
+++ b/examples/authz/photoz/photoz-restful-api/src/main/java/org/keycloak/example/photoz/entity/Album.java
@@ -20,7 +20,6 @@ package org.keycloak.example.photoz.entity;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
 import javax.persistence.OneToMany;
 import java.util.ArrayList;
@@ -33,8 +32,7 @@ import java.util.List;
 public class Album {
 
     @Id
-    @GeneratedValue
-    private Long id;
+    private String id;
 
     @Column(nullable = false)
     private String name;
@@ -45,11 +43,11 @@ public class Album {
     @Column(nullable = false)
     private String userId;
 
-    public Long getId() {
+    public String getId() {
         return this.id;
     }
 
-    public void setId(final Long id) {
+    public void setId(final String id) {
         this.id = id;
     }
 
diff --git a/examples/authz/pom.xml b/examples/authz/pom.xml
index 5e41c0c..a32c665 100755
--- a/examples/authz/pom.xml
+++ b/examples/authz/pom.xml
@@ -17,8 +17,8 @@
     <description/>
 
     <properties>
-        <maven.compiler.target>1.8</maven.compiler.target>
-        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.7</maven.compiler.target>
+        <maven.compiler.source>1.7</maven.compiler.source>
     </properties>
 
     <modules>