You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2018/04/16 22:45:36 UTC

[32/38] tomee git commit: Incorporate feedback

Incorporate feedback


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/898c8219
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/898c8219
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/898c8219

Branch: refs/heads/master
Commit: 898c82191408443ed262bafb0dff8fa61ece1296
Parents: 9a428e1
Author: Jean-Louis Monteiro <je...@gmail.com>
Authored: Wed Mar 7 08:57:27 2018 +0100
Committer: Jean-Louis Monteiro <je...@gmail.com>
Committed: Wed Mar 7 08:57:27 2018 +0100

----------------------------------------------------------------------
 .../microprofile/jwt/MPJWTInitializer.java      |   3 +-
 .../tomee/microprofile/jwt/cdi/ClaimBean.java   |  17 ++-
 .../microprofile/jwt/cdi/DefaultLiteral.java    |   2 +-
 .../principal/DefaultJWTCallerPrincipal.java    | 114 +++++++++++--------
 4 files changed, 79 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/898c8219/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/MPJWTInitializer.java
----------------------------------------------------------------------
diff --git a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/MPJWTInitializer.java b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/MPJWTInitializer.java
index bf64601..fb954a5 100644
--- a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/MPJWTInitializer.java
+++ b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/MPJWTInitializer.java
@@ -36,7 +36,7 @@ public class MPJWTInitializer implements ServletContainerInitializer {
     public void onStartup(final Set<Class<?>> classes, final ServletContext ctx) throws ServletException {
 
         if (classes == null || classes.isEmpty()) {
-            return; // to REST application having @LoginConfig on it
+            return; // to classes having @LoginConfig on it
         }
 
         for (Class<?> clazz : classes) {
@@ -48,6 +48,7 @@ public class MPJWTInitializer implements ServletContainerInitializer {
 
             if (!Application.class.isAssignableFrom(clazz)) {
                 continue; // do we really want Application?
+                // See https://github.com/eclipse/microprofile-jwt-auth/issues/70 to clarify this point
             }
 
             final FilterRegistration.Dynamic mpJwtFilter = ctx.addFilter("mp-jwt-filter", MPJWTFilter.class);

http://git-wip-us.apache.org/repos/asf/tomee/blob/898c8219/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/ClaimBean.java
----------------------------------------------------------------------
diff --git a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/ClaimBean.java b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/ClaimBean.java
index 513e271..5f7852f 100644
--- a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/ClaimBean.java
+++ b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/ClaimBean.java
@@ -54,9 +54,9 @@ import java.util.logging.Logger;
 @Vetoed
 public class ClaimBean<T> implements Bean<T>, PassivationCapable {
 
-    private static Logger logger = Logger.getLogger(MPJWTCDIExtension.class.getName());
+    private static final Logger logger = Logger.getLogger(MPJWTCDIExtension.class.getName());
 
-    private final static Set<Annotation> QUALIFIERS = new HashSet<>();
+    private static final Set<Annotation> QUALIFIERS = new HashSet<>();
 
     static {
         QUALIFIERS.add(new ClaimLiteral());
@@ -65,9 +65,6 @@ public class ClaimBean<T> implements Bean<T>, PassivationCapable {
     @Inject
     private Jsonb jsonb;
 
-    @Inject
-    private JsonWebToken jsonWebToken;
-
     private final BeanManager bm;
     private final Class rawType;
     private final Set<Type> types;
@@ -112,8 +109,8 @@ public class ClaimBean<T> implements Bean<T>, PassivationCapable {
     }
 
     @Override
-    public void destroy(T instance, CreationalContext<T> context) {
-
+    public void destroy(final T instance, final CreationalContext<T> context) {
+        logger.finest("Destroying CDI Bean for type " + types.iterator().next());
     }
 
     @Override
@@ -153,9 +150,10 @@ public class ClaimBean<T> implements Bean<T>, PassivationCapable {
 
     @Override
     public T create(final CreationalContext<T> context) {
+        logger.finest("Creating CDI Bean for type " + types.iterator().next());
         final InjectionPoint ip = (InjectionPoint) bm.getInjectableReference(new ClaimInjectionPoint(this), context);
         if (ip == null) {
-            throw new IllegalStateException("Could not retrieve InjectionPoint");
+            throw new IllegalStateException("Could not retrieve InjectionPoint for type " + types.iterator().next());
         }
 
         final Annotated annotated = ip.getAnnotated();
@@ -259,6 +257,7 @@ public class ClaimBean<T> implements Bean<T>, PassivationCapable {
 
     private T getClaimValue(final String name) {
         final Bean<?> bean = bm.resolve(bm.getBeans(JsonWebToken.class));
+        JsonWebToken jsonWebToken = null;
         if (RequestScoped.class.equals(bean.getScope())) {
             jsonWebToken = JsonWebToken.class.cast(bm.getReference(bean, JsonWebToken.class, null));
         }
@@ -277,7 +276,7 @@ public class ClaimBean<T> implements Bean<T>, PassivationCapable {
         return wrapValue(claimValue);
     }
 
-    private static final String TMP = "tmp"; // todo kill this if possible
+    private static final String TMP = "tmp";
 
     private JsonValue wrapValue(Object value) {
         JsonValue jsonValue = null;

http://git-wip-us.apache.org/repos/asf/tomee/blob/898c8219/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/DefaultLiteral.java
----------------------------------------------------------------------
diff --git a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/DefaultLiteral.java b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/DefaultLiteral.java
index d741258..a084ea3 100644
--- a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/DefaultLiteral.java
+++ b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/cdi/DefaultLiteral.java
@@ -20,5 +20,5 @@ import javax.enterprise.inject.Default;
 import javax.enterprise.util.AnnotationLiteral;
 
 class DefaultLiteral extends AnnotationLiteral<Default> implements Default {
-    public static Default INSTANCE = new DefaultLiteral();
+    public static final Default INSTANCE = new DefaultLiteral();
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/898c8219/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipal.java
----------------------------------------------------------------------
diff --git a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipal.java b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipal.java
index e077ca4..b0d6a42 100644
--- a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipal.java
+++ b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipal.java
@@ -42,10 +42,10 @@ import java.util.logging.Logger;
  */
 public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
 
-    private static Logger logger = Logger.getLogger(DefaultJWTCallerPrincipal.class.getName());
-    private String jwt;
-    private String type;
-    private JwtClaims claimsSet;
+    private static final Logger logger = Logger.getLogger(DefaultJWTCallerPrincipal.class.getName());
+    private final String jwt;
+    private final String type;
+    private final JwtClaims claimsSet;
 
     /**
      * Create the DefaultJWTCallerPrincipal from the parsed JWT token and the extracted principal name
@@ -63,17 +63,19 @@ public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
 
     @Override
     public Set<String> getAudience() {
-        Set<String> audSet = new HashSet<>();
+        final Set<String> audSet = new HashSet<>();
         try {
-            List<String> audList = claimsSet.getStringListClaimValue("aud");
+            final List<String> audList = claimsSet.getStringListClaimValue("aud");
             if (audList != null) {
                 audSet.addAll(audList);
             }
-        } catch (MalformedClaimException e) {
+
+        } catch (final MalformedClaimException e) {
             try {
-                String aud = claimsSet.getStringClaimValue("aud");
+                final String aud = claimsSet.getStringClaimValue("aud");
                 audSet.add(aud);
-            } catch (MalformedClaimException e1) {
+            } catch (final MalformedClaimException e1) {
+                logger.log(Level.FINEST, "Can't retrieve malformed 'aud' claim.", e);
             }
         }
         return audSet.isEmpty() ? null : audSet;
@@ -81,14 +83,15 @@ public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
 
     @Override
     public Set<String> getGroups() {
-        HashSet<String> groups = new HashSet<>();
+        final HashSet<String> groups = new HashSet<>();
         try {
-            List<String> globalGroups = claimsSet.getStringListClaimValue("groups");
+            final List<String> globalGroups = claimsSet.getStringListClaimValue("groups");
             if (globalGroups != null) {
                 groups.addAll(globalGroups);
             }
-        } catch (MalformedClaimException e) {
-            e.printStackTrace();
+
+        } catch (final MalformedClaimException e) {
+            logger.log(Level.FINEST, "Can't retrieve malformed 'groups' claim.", e);
         }
         return groups;
     }
@@ -119,7 +122,8 @@ public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
                     if (claim == null) {
                         claim = new Long(0);
                     }
-                } catch (MalformedClaimException e) {
+                } catch (final MalformedClaimException e) {
+                    logger.log(Level.FINEST, "Can't retrieve 'updated_at' a malformed claim.", e);
                 }
                 break;
             case groups:
@@ -177,7 +181,8 @@ public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
                 ", allowedOrigins=" + getClaim("allowedOrigins") +
                 ", updatedAt=" + getClaim("updated_at") +
                 ", acr='" + getClaim("acr") + '\'';
-        StringBuilder tmp = new StringBuilder(toString);
+
+        final StringBuilder tmp = new StringBuilder(toString);
         tmp.append(", groups=[");
         for (String group : getGroups()) {
             tmp.append(group);
@@ -201,15 +206,17 @@ public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
         if (claimsSet.hasClaim(Claims.sub_jwk.name())) {
             replaceMap(Claims.sub_jwk.name());
         }
+
         // Handle custom claims
-        Set<String> customClaimNames = filterCustomClaimNames(claimsSet.getClaimNames());
+        final Set<String> customClaimNames = filterCustomClaimNames(claimsSet.getClaimNames());
         for (String name : customClaimNames) {
-            Object claimValue = claimsSet.getClaimValue(name);
-            Class claimType = claimValue.getClass();
+            final Object claimValue = claimsSet.getClaimValue(name);
             if (claimValue instanceof List) {
                 replaceList(name);
+
             } else if (claimValue instanceof Map) {
                 replaceMap(name);
+
             } else if (claimValue instanceof Number) {
                 replaceNumber(name);
             }
@@ -222,8 +229,8 @@ public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
      * @param claimNames - the current set of claim names in this token
      * @return the possibly empty set of names for non-Claims claims
      */
-    private Set<String> filterCustomClaimNames(Collection<String> claimNames) {
-        HashSet<String> customNames = new HashSet<>(claimNames);
+    private Set<String> filterCustomClaimNames(final Collection<String> claimNames) {
+        final HashSet<String> customNames = new HashSet<>(claimNames);
         for (Claims claim : Claims.values()) {
             customNames.remove(claim.name());
         }
@@ -235,35 +242,42 @@ public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
      *
      * @param name - claim name
      */
-    private void replaceMap(String name) {
+    private void replaceMap(final String name) {
         try {
-            Map<String, Object> map = claimsSet.getClaimValue(name, Map.class);
-            JsonObject jsonObject = replaceMap(map);
+            final Map<String, Object> map = claimsSet.getClaimValue(name, Map.class);
+            final JsonObject jsonObject = replaceMap(map);
             claimsSet.setClaim(name, jsonObject);
-        } catch (MalformedClaimException e) {
+
+        } catch (final MalformedClaimException e) {
             logger.log(Level.WARNING, "replaceMap failure for: " + name, e);
         }
     }
 
-    private JsonObject replaceMap(Map<String, Object> map) {
-        JsonObjectBuilder builder = Json.createObjectBuilder();
+    private JsonObject replaceMap(final Map<String, Object> map) {
+        final JsonObjectBuilder builder = Json.createObjectBuilder();
+
         for (Map.Entry<String, Object> entry : map.entrySet()) {
-            Object entryValue = entry.getValue();
+            final Object entryValue = entry.getValue();
             if (entryValue instanceof Map) {
-                JsonObject entryJsonObject = replaceMap((Map<String, Object>) entryValue);
+                final JsonObject entryJsonObject = replaceMap((Map<String, Object>) entryValue);
                 builder.add(entry.getKey(), entryJsonObject);
+
             } else if (entryValue instanceof List) {
-                JsonArray array = (JsonArray) wrapValue(entryValue);
+                final JsonArray array = (JsonArray) wrapValue(entryValue);
                 builder.add(entry.getKey(), array);
+
             } else if (entryValue instanceof Long || entryValue instanceof Integer) {
-                long lvalue = ((Number) entryValue).longValue();
+                final long lvalue = ((Number) entryValue).longValue();
                 builder.add(entry.getKey(), lvalue);
+
             } else if (entryValue instanceof Double || entryValue instanceof Float) {
-                double dvalue = ((Number) entryValue).doubleValue();
-                builder.add(entry.getKey(), dvalue);
+                final double value = ((Number) entryValue).doubleValue();
+                builder.add(entry.getKey(), value);
+
             } else if (entryValue instanceof Boolean) {
-                boolean flag = ((Boolean) entryValue).booleanValue();
+                final boolean flag = ((Boolean) entryValue).booleanValue();
                 builder.add(entry.getKey(), flag);
+
             } else if (entryValue instanceof String) {
                 builder.add(entry.getKey(), entryValue.toString());
             }
@@ -271,36 +285,42 @@ public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
         return builder.build();
     }
 
-    private JsonValue wrapValue(Object value) {
+    private JsonValue wrapValue(final Object value) {
         JsonValue jsonValue = null;
         if (value instanceof Number) {
-            Number number = (Number) value;
+            final Number number = (Number) value;
             if ((number instanceof Long) || (number instanceof Integer)) {
                 jsonValue = Json.createObjectBuilder()
                         .add("tmp", number.longValue())
                         .build()
                         .getJsonNumber("tmp");
+
             } else {
                 jsonValue = Json.createObjectBuilder()
                         .add("tmp", number.doubleValue())
                         .build()
                         .getJsonNumber("tmp");
             }
+
         } else if (value instanceof Boolean) {
-            Boolean flag = (Boolean) value;
+            final Boolean flag = (Boolean) value;
             jsonValue = flag ? JsonValue.TRUE : JsonValue.FALSE;
+
         } else if (value instanceof List) {
-            JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
-            List list = (List) value;
+            final JsonArrayBuilder arrayBuilder = Json.createArrayBuilder();
+            final List list = (List) value;
             for (Object element : list) {
                 if (element instanceof String) {
                     arrayBuilder.add(element.toString());
+
                 } else {
                     JsonValue jvalue = wrapValue(element);
                     arrayBuilder.add(jvalue);
                 }
+
             }
             jsonValue = arrayBuilder.build();
+
         }
         return jsonValue;
     }
@@ -311,22 +331,24 @@ public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
      *
      * @param name - claim name
      */
-    private void replaceList(String name) {
+    private void replaceList(final String name) {
         try {
-            List list = claimsSet.getClaimValue(name, List.class);
-            JsonArray array = (JsonArray) wrapValue(list);
+            final List list = claimsSet.getClaimValue(name, List.class);
+            final JsonArray array = (JsonArray) wrapValue(list);
             claimsSet.setClaim(name, array);
-        } catch (MalformedClaimException e) {
+
+        } catch (final MalformedClaimException e) {
             logger.log(Level.WARNING, "replaceList failure for: " + name, e);
         }
     }
 
-    private void replaceNumber(String name) {
+    private void replaceNumber(final String name) {
         try {
-            Number number = claimsSet.getClaimValue(name, Number.class);
-            JsonNumber jsonNumber = (JsonNumber) wrapValue(number);
+            final Number number = claimsSet.getClaimValue(name, Number.class);
+            final JsonNumber jsonNumber = (JsonNumber) wrapValue(number);
             claimsSet.setClaim(name, jsonNumber);
-        } catch (MalformedClaimException e) {
+
+        } catch (final MalformedClaimException e) {
             logger.log(Level.WARNING, "replaceNumber failure for: " + name, e);
         }
     }