Repository: tomee
Updated Branches:
  refs/heads/master 09ca434d9 -> 387c11af0


http://git-wip-us.apache.org/repos/asf/tomee/blob/72c08321/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
deleted file mode 100644
index 661fbde..0000000
--- 
a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipal.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- *     Licensed to the Apache Software Foundation (ASF) under one or more
- *     contributor license agreements.  See the NOTICE file distributed with
- *     this work for additional information regarding copyright ownership.
- *     The ASF licenses this file to You under the Apache License, Version 2.0
- *     (the "License"); you may not use this file except in compliance with
- *     the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *     Unless required by applicable law or agreed to in writing, software
- *     distributed under the License is distributed on an "AS IS" BASIS,
- *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *     See the License for the specific language governing permissions and
- *     limitations under the License.
- */
-package org.apache.tomee.microprofile.jwt.principal;
-
-import org.eclipse.microprofile.jwt.Claims;
-import org.jose4j.jwt.JwtClaims;
-import org.jose4j.jwt.MalformedClaimException;
-
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonNumber;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import javax.json.JsonValue;
-import javax.security.auth.Subject;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-/**
- * A default implementation of JWTCallerPrincipal using jose4j
- * Another implementation could use nimbus and another plain JSON-P
- */
-public class DefaultJWTCallerPrincipal extends JWTCallerPrincipal {
-
-    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
-     *
-     * @param jwt  - the parsed JWT token representation
-     * @param name - the extracted unqiue name to use as the principal name; 
from "upn", "preferred_username" or "sub" claim
-     */
-    public DefaultJWTCallerPrincipal(final String jwt, final String type, 
final JwtClaims claimsSet, final String name) {
-        super(name);
-        this.jwt = jwt;
-        this.type = type;
-        this.claimsSet = claimsSet;
-        fixJoseTypes();
-    }
-
-    @Override
-    public Set<String> getAudience() {
-        final Set<String> audSet = new HashSet<>();
-        try {
-            final List<String> audList = 
claimsSet.getStringListClaimValue("aud");
-            if (audList != null) {
-                audSet.addAll(audList);
-            }
-
-        } catch (final MalformedClaimException e) {
-            try {
-                final String aud = claimsSet.getStringClaimValue("aud");
-                audSet.add(aud);
-            } catch (final MalformedClaimException e1) {
-                logger.log(Level.FINEST, "Can't retrieve malformed 'aud' 
claim.", e);
-            }
-        }
-        return audSet.isEmpty() ? null : audSet;
-    }
-
-    @Override
-    public Set<String> getGroups() {
-        final HashSet<String> groups = new HashSet<>();
-        try {
-            final List<String> globalGroups = 
claimsSet.getStringListClaimValue("groups");
-            if (globalGroups != null) {
-                groups.addAll(globalGroups);
-            }
-
-        } catch (final MalformedClaimException e) {
-            logger.log(Level.FINEST, "Can't retrieve malformed 'groups' 
claim.", e);
-        }
-        return groups;
-    }
-
-
-    @Override
-    public Set<String> getClaimNames() {
-        return new HashSet<>(claimsSet.getClaimNames());
-    }
-
-    public String getRawToken() {
-        return jwt;
-    }
-
-    @Override
-    public Object getClaim(final String claimName) {
-        Claims claimType = Claims.UNKNOWN;
-        Object claim = null;
-        try {
-            claimType = Claims.valueOf(claimName);
-        } catch (IllegalArgumentException e) {
-        }
-        // Handle the jose4j NumericDate types and
-        switch (claimType) {
-            case exp:
-            case iat:
-            case auth_time:
-            case nbf:
-            case updated_at:
-                try {
-                    claim = claimsSet.getClaimValue(claimType.name(), 
Long.class);
-                    if (claim == null) {
-                        claim = new Long(0);
-                    }
-                } catch (final MalformedClaimException e) {
-                    logger.log(Level.FINEST, "Can't retrieve 'updated_at' a 
malformed claim.", e);
-                }
-                break;
-            case groups:
-                claim = getGroups();
-                break;
-            case aud:
-                claim = getAudience();
-                break;
-            case UNKNOWN:
-                claim = claimsSet.getClaimValue(claimName);
-                break;
-            default:
-                claim = claimsSet.getClaimValue(claimType.name());
-        }
-        return claim;
-    }
-
-    @Override
-    public boolean implies(final Subject subject) {
-        return false;
-    }
-
-    public String toString() {
-        return toString(false);
-    }
-
-    /**
-     * TODO: showAll is ignored and currently assumed true
-     *
-     * @param showAll - should all claims associated with the JWT be displayed 
or should only those defined in the
-     *                JsonWebToken interface be displayed.
-     * @return JWTCallerPrincipal string view
-     */
-    @Override
-    public String toString(boolean showAll) {
-        String toString = "DefaultJWTCallerPrincipal{" +
-                "id='" + getTokenID() + '\'' +
-                ", name='" + getName() + '\'' +
-                ", expiration=" + getExpirationTime() +
-                ", notBefore=" + getClaim(Claims.nbf.name()) +
-                ", issuedAt=" + getIssuedAtTime() +
-                ", issuer='" + getIssuer() + '\'' +
-                ", audience=" + getAudience() +
-                ", subject='" + getSubject() + '\'' +
-                ", type='" + type + '\'' +
-                ", issuedFor='" + getClaim("azp") + '\'' +
-                ", authTime=" + getClaim("auth_time") +
-                ", givenName='" + getClaim("given_name") + '\'' +
-                ", familyName='" + getClaim("family_name") + '\'' +
-                ", middleName='" + getClaim("middle_name") + '\'' +
-                ", nickName='" + getClaim("nickname") + '\'' +
-                ", preferredUsername='" + getClaim("preferred_username") + 
'\'' +
-                ", email='" + getClaim("email") + '\'' +
-                ", emailVerified=" + getClaim(Claims.email_verified.name()) +
-                ", allowedOrigins=" + getClaim("allowedOrigins") +
-                ", updatedAt=" + getClaim("updated_at") +
-                ", acr='" + getClaim("acr") + '\'';
-
-        final StringBuilder tmp = new StringBuilder(toString);
-        tmp.append(", groups=[");
-        for (String group : getGroups()) {
-            tmp.append(group);
-            tmp.append(',');
-        }
-        tmp.setLength(tmp.length() - 1);
-        tmp.append("]}");
-        return tmp.toString();
-    }
-
-    /**
-     * Convert the types jose4j uses for address, sub_jwk, and jwk
-     */
-    private void fixJoseTypes() {
-        if (claimsSet.hasClaim(Claims.address.name())) {
-            replaceMap(Claims.address.name());
-        }
-        if (claimsSet.hasClaim(Claims.jwk.name())) {
-            replaceMap(Claims.jwk.name());
-        }
-        if (claimsSet.hasClaim(Claims.sub_jwk.name())) {
-            replaceMap(Claims.sub_jwk.name());
-        }
-
-        // Handle custom claims
-        final Set<String> customClaimNames = 
filterCustomClaimNames(claimsSet.getClaimNames());
-        for (String name : customClaimNames) {
-            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);
-            }
-        }
-    }
-
-    /**
-     * Determine the custom claims in the set
-     *
-     * @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(final Collection<String> 
claimNames) {
-        final HashSet<String> customNames = new HashSet<>(claimNames);
-        for (Claims claim : Claims.values()) {
-            customNames.remove(claim.name());
-        }
-        return customNames;
-    }
-
-    /**
-     * Replace the jose4j Map<String,Object> with a JsonObject
-     *
-     * @param name - claim name
-     */
-    private void replaceMap(final String name) {
-        try {
-            final Map<String, Object> map = claimsSet.getClaimValue(name, 
Map.class);
-            final JsonObject jsonObject = replaceMap(map);
-            claimsSet.setClaim(name, jsonObject);
-
-        } catch (final MalformedClaimException e) {
-            logger.log(Level.WARNING, "replaceMap failure for: " + name, e);
-        }
-    }
-
-    private JsonObject replaceMap(final Map<String, Object> map) {
-        final JsonObjectBuilder builder = Json.createObjectBuilder();
-
-        for (Map.Entry<String, Object> entry : map.entrySet()) {
-            final Object entryValue = entry.getValue();
-            if (entryValue instanceof Map) {
-                final JsonObject entryJsonObject = replaceMap((Map<String, 
Object>) entryValue);
-                builder.add(entry.getKey(), entryJsonObject);
-
-            } else if (entryValue instanceof List) {
-                final JsonArray array = (JsonArray) wrapValue(entryValue);
-                builder.add(entry.getKey(), array);
-
-            } else if (entryValue instanceof Long || entryValue instanceof 
Integer) {
-                final long lvalue = ((Number) entryValue).longValue();
-                builder.add(entry.getKey(), lvalue);
-
-            } else if (entryValue instanceof Double || entryValue instanceof 
Float) {
-                final double value = ((Number) entryValue).doubleValue();
-                builder.add(entry.getKey(), value);
-
-            } else if (entryValue instanceof Boolean) {
-                final boolean flag = ((Boolean) entryValue).booleanValue();
-                builder.add(entry.getKey(), flag);
-
-            } else if (entryValue instanceof String) {
-                builder.add(entry.getKey(), entryValue.toString());
-            }
-        }
-        return builder.build();
-    }
-
-    private JsonValue wrapValue(final Object value) {
-        JsonValue jsonValue = null;
-        if (value instanceof Number) {
-            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) {
-            final Boolean flag = (Boolean) value;
-            jsonValue = flag ? JsonValue.TRUE : JsonValue.FALSE;
-
-        } else if (value instanceof List) {
-            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;
-    }
-
-
-    /**
-     * Replace the jose4j List<?> with a JsonArray
-     *
-     * @param name - claim name
-     */
-    private void replaceList(final String name) {
-        try {
-            final List list = claimsSet.getClaimValue(name, List.class);
-            final JsonArray array = (JsonArray) wrapValue(list);
-            claimsSet.setClaim(name, array);
-
-        } catch (final MalformedClaimException e) {
-            logger.log(Level.WARNING, "replaceList failure for: " + name, e);
-        }
-    }
-
-    private void replaceNumber(final String name) {
-        try {
-            final Number number = claimsSet.getClaimValue(name, Number.class);
-            final JsonNumber jsonNumber = (JsonNumber) wrapValue(number);
-            claimsSet.setClaim(name, jsonNumber);
-
-        } catch (final MalformedClaimException e) {
-            logger.log(Level.WARNING, "replaceNumber failure for: " + name, e);
-        }
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/72c08321/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipalFactory.java
----------------------------------------------------------------------
diff --git 
a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipalFactory.java
 
b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipalFactory.java
deleted file mode 100644
index feb2008..0000000
--- 
a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/DefaultJWTCallerPrincipalFactory.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- *     Licensed to the Apache Software Foundation (ASF) under one or more
- *     contributor license agreements.  See the NOTICE file distributed with
- *     this work for additional information regarding copyright ownership.
- *     The ASF licenses this file to You under the Apache License, Version 2.0
- *     (the "License"); you may not use this file except in compliance with
- *     the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *     Unless required by applicable law or agreed to in writing, software
- *     distributed under the License is distributed on an "AS IS" BASIS,
- *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *     See the License for the specific language governing permissions and
- *     limitations under the License.
- */
-package org.apache.tomee.microprofile.jwt.principal;
-
-import org.apache.tomee.microprofile.jwt.ParseException;
-import org.apache.tomee.microprofile.jwt.config.JWTAuthContextInfo;
-import org.eclipse.microprofile.jwt.Claims;
-import org.jose4j.jwa.AlgorithmConstraints;
-import org.jose4j.jws.AlgorithmIdentifiers;
-import org.jose4j.jwt.JwtClaims;
-import org.jose4j.jwt.MalformedClaimException;
-import org.jose4j.jwt.NumericDate;
-import org.jose4j.jwt.consumer.InvalidJwtException;
-import org.jose4j.jwt.consumer.JwtConsumer;
-import org.jose4j.jwt.consumer.JwtConsumerBuilder;
-import org.jose4j.jwt.consumer.JwtContext;
-
-/**
- * A default implementation of the abstract JWTCallerPrincipalFactory that 
uses the Keycloak token parsing classes.
- */
-public class DefaultJWTCallerPrincipalFactory extends 
JWTCallerPrincipalFactory {
-
-    /**
-     * Tries to load the JWTAuthContextInfo from CDI if the class level 
authContextInfo has not been set.
-     */
-    public DefaultJWTCallerPrincipalFactory() {
-    }
-
-    @Override
-    public JWTCallerPrincipal parse(final String token, final 
JWTAuthContextInfo authContextInfo) throws ParseException {
-        JWTCallerPrincipal principal;
-
-        try {
-            final JwtConsumerBuilder builder = new JwtConsumerBuilder()
-                    .setRequireExpirationTime()
-                    .setRequireSubject()
-                    .setSkipDefaultAudienceValidation()
-                    .setExpectedIssuer(authContextInfo.getIssuedBy())
-                    .setVerificationKey(authContextInfo.getSignerKey())
-                    .setJwsAlgorithmConstraints(
-                            new 
AlgorithmConstraints(AlgorithmConstraints.ConstraintType.WHITELIST,
-                                    AlgorithmIdentifiers.RSA_USING_SHA256));
-
-            if (authContextInfo.getExpGracePeriodSecs() > 0) {
-                
builder.setAllowedClockSkewInSeconds(authContextInfo.getExpGracePeriodSecs());
-
-            } else {
-                builder.setEvaluationTime(NumericDate.fromSeconds(0));
-            }
-
-            final JwtConsumer jwtConsumer = builder.build();
-            final JwtContext jwtContext = jwtConsumer.process(token);
-            final String type = 
jwtContext.getJoseObjects().get(0).getHeader("typ");
-            //  Validate the JWT and process it to the Claims
-            jwtConsumer.processContext(jwtContext);
-            JwtClaims claimsSet = jwtContext.getJwtClaims();
-
-            // We have to determine the unique name to use as the principal 
name. It comes from upn, preferred_username, sub in that order
-            String principalName = claimsSet.getClaimValue("upn", 
String.class);
-            if (principalName == null) {
-                principalName = claimsSet.getClaimValue("preferred_username", 
String.class);
-                if (principalName == null) {
-                    principalName = claimsSet.getSubject();
-                }
-            }
-            claimsSet.setClaim(Claims.raw_token.name(), token);
-            principal = new DefaultJWTCallerPrincipal(token, type, claimsSet, 
principalName);
-
-        } catch (final InvalidJwtException e) {
-            throw new ParseException("Failed to verify token", e);
-
-        } catch (final MalformedClaimException e) {
-            throw new ParseException("Failed to verify token claims", e);
-        }
-
-        return principal;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/72c08321/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/JWTCallerPrincipal.java
----------------------------------------------------------------------
diff --git 
a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/JWTCallerPrincipal.java
 
b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/JWTCallerPrincipal.java
deleted file mode 100644
index d8e3c4c..0000000
--- 
a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/JWTCallerPrincipal.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *     Licensed to the Apache Software Foundation (ASF) under one or more
- *     contributor license agreements.  See the NOTICE file distributed with
- *     this work for additional information regarding copyright ownership.
- *     The ASF licenses this file to You under the Apache License, Version 2.0
- *     (the "License"); you may not use this file except in compliance with
- *     the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *     Unless required by applicable law or agreed to in writing, software
- *     distributed under the License is distributed on an "AS IS" BASIS,
- *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *     See the License for the specific language governing permissions and
- *     limitations under the License.
- */
-package org.apache.tomee.microprofile.jwt.principal;
-
-
-import org.eclipse.microprofile.jwt.JsonWebToken;
-
-import java.util.Optional;
-
-/**
- * An abstract CallerPrincipal implementation that provides access to the JWT 
claims that are required by
- * the microprofile token.
- */
-public abstract class JWTCallerPrincipal implements JsonWebToken {
-
-    private String name;
-
-    /**
-     * Create a JWTCallerPrincipal with the caller's name
-     *
-     * @param name - caller's name
-     */
-    public JWTCallerPrincipal(final String name) {
-        this.name = name;
-    }
-
-    @Override
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Generate a human readable version of the caller principal and 
associated JWT.
-     *
-     * @param showAll - should all claims associated with the JWT be displayed 
or should only those defined in the
-     *                JsonWebToken interface be displayed.
-     * @return human readable presentation of the caller principal and 
associated JWT.
-     */
-    public abstract String toString(final boolean showAll);
-
-    public <T> Optional<T> claim(final String claimName) {
-        final T claim = (T) getClaim(claimName);
-        return Optional.ofNullable(claim);
-    }
-}

http://git-wip-us.apache.org/repos/asf/tomee/blob/72c08321/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/JWTCallerPrincipalFactory.java
----------------------------------------------------------------------
diff --git 
a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/JWTCallerPrincipalFactory.java
 
b/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/JWTCallerPrincipalFactory.java
deleted file mode 100644
index e7ebcd6..0000000
--- 
a/tck/mp-jwt-embedded/src/main/java/org/apache/tomee/microprofile/jwt/principal/JWTCallerPrincipalFactory.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- *     Licensed to the Apache Software Foundation (ASF) under one or more
- *     contributor license agreements.  See the NOTICE file distributed with
- *     this work for additional information regarding copyright ownership.
- *     The ASF licenses this file to You under the Apache License, Version 2.0
- *     (the "License"); you may not use this file except in compliance with
- *     the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *     Unless required by applicable law or agreed to in writing, software
- *     distributed under the License is distributed on an "AS IS" BASIS,
- *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *     See the License for the specific language governing permissions and
- *     limitations under the License.
- */
-package org.apache.tomee.microprofile.jwt.principal;
-
-import org.apache.tomee.microprofile.jwt.ParseException;
-import org.apache.tomee.microprofile.jwt.config.JWTAuthContextInfo;
-
-import java.net.URL;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.ServiceLoader;
-
-/**
- * The factory class that provides the token string to JWTCallerPrincipal 
parsing for a given implementation.
- */
-public abstract class JWTCallerPrincipalFactory {
-
-    private static JWTCallerPrincipalFactory instance;
-
-    /**
-     * Obtain the JWTCallerPrincipalFactory that has been set or by using the 
ServiceLoader pattern.
-     *
-     * @return the factory instance
-     * @see #setInstance(JWTCallerPrincipalFactory)
-     */
-    public static JWTCallerPrincipalFactory instance() {
-        if (instance == null) {
-            synchronized (JWTCallerPrincipalFactory.class) {
-                if (instance != null) {
-                    return instance;
-                }
-
-                ClassLoader cl = AccessController.doPrivileged(new 
PrivilegedAction<ClassLoader>() {
-                    @Override
-                    public ClassLoader run() {
-                        return Thread.currentThread().getContextClassLoader();
-                    }
-                });
-                if (cl == null) {
-                    cl = JWTCallerPrincipalFactory.class.getClassLoader();
-                }
-
-                JWTCallerPrincipalFactory newInstance = loadSpi(cl);
-
-                if (newInstance == null && cl != 
JWTCallerPrincipalFactory.class.getClassLoader()) {
-                    cl = JWTCallerPrincipalFactory.class.getClassLoader();
-                    newInstance = loadSpi(cl);
-                }
-                if (newInstance == null) {
-                    throw new IllegalStateException("No 
JWTCallerPrincipalFactory implementation found!");
-                }
-
-                instance = newInstance;
-            }
-        }
-
-        return instance;
-    }
-
-    /**
-     * Look for a JWTCallerPrincipalFactory service implementation using the 
ServiceLoader.
-     *
-     * @param cl - the ClassLoader to pass into the {@link 
ServiceLoader#load(Class, ClassLoader)} method.
-     * @return the JWTCallerPrincipalFactory if found, null otherwise
-     */
-    private static JWTCallerPrincipalFactory loadSpi(ClassLoader cl) {
-        if (cl == null) {
-            return null;
-        }
-
-        // start from the root CL and go back down to the TCCL
-        JWTCallerPrincipalFactory instance = loadSpi(cl.getParent());
-
-        if (instance == null) {
-            ServiceLoader<JWTCallerPrincipalFactory> sl = 
ServiceLoader.load(JWTCallerPrincipalFactory.class, cl);
-            URL u = 
cl.getResource("/META-INF/services/org.apache.tomee.microprofile.jwt.JWTCallerPrincipalFactory");
-            System.out.printf("JWTCallerPrincipalFactory, cl=%s, u=%s, 
sl=%s\n", cl, u, sl);
-            try {
-                for (JWTCallerPrincipalFactory spi : sl) {
-                    if (instance != null) {
-                        throw new IllegalStateException(
-                                "Multiple JWTCallerPrincipalFactory 
implementations found: "
-                                        + spi.getClass().getName() + " and "
-                                        + instance.getClass().getName());
-                    } else {
-                        System.out.printf("sl=%s, loaded=%s\n", sl, spi);
-                        instance = spi;
-                    }
-                }
-
-            } catch (final Throwable e) {
-                System.err.printf("Warning: %s\n", e.getMessage());
-            }
-        }
-        return instance;
-    }
-
-    /**
-     * Set the instance. It is used by OSGi environment where service loader 
pattern is not supported.
-     *
-     * @param resolver the instance to use.
-     */
-    public static void setInstance(final JWTCallerPrincipalFactory resolver) {
-        instance = resolver;
-    }
-
-    /**
-     * Parse the given bearer token string into a JWTCallerPrincipal instance.
-     *
-     * @param token - the bearer token provided for authorization
-     * @return A JWTCallerPrincipal representation for the token.
-     * @throws ParseException on parse or verification failure.
-     */
-    public abstract JWTCallerPrincipal parse(final String token, final 
JWTAuthContextInfo authContextInfo) throws ParseException;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/72c08321/tck/mp-jwt-embedded/src/main/resources/META-INF/beans.xml
----------------------------------------------------------------------
diff --git a/tck/mp-jwt-embedded/src/main/resources/META-INF/beans.xml 
b/tck/mp-jwt-embedded/src/main/resources/META-INF/beans.xml
deleted file mode 100644
index 330c7f6..0000000
--- a/tck/mp-jwt-embedded/src/main/resources/META-INF/beans.xml
+++ /dev/null
@@ -1 +0,0 @@
-<beans/>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/72c08321/tck/mp-jwt-embedded/src/main/resources/META-INF/org.apache.openejb.extension
----------------------------------------------------------------------
diff --git 
a/tck/mp-jwt-embedded/src/main/resources/META-INF/org.apache.openejb.extension 
b/tck/mp-jwt-embedded/src/main/resources/META-INF/org.apache.openejb.extension
deleted file mode 100644
index 9734019..0000000
--- 
a/tck/mp-jwt-embedded/src/main/resources/META-INF/org.apache.openejb.extension
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.tomee.microprofile.jwt.jaxrs.MPJWPProviderRegistration
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/72c08321/tck/mp-jwt-embedded/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
----------------------------------------------------------------------
diff --git 
a/tck/mp-jwt-embedded/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
 
b/tck/mp-jwt-embedded/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
deleted file mode 100644
index d5eea47..0000000
--- 
a/tck/mp-jwt-embedded/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.tomee.microprofile.jwt.cdi.MPJWTCDIExtension
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/72c08321/tck/mp-jwt-embedded/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
----------------------------------------------------------------------
diff --git 
a/tck/mp-jwt-embedded/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
 
b/tck/mp-jwt-embedded/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
deleted file mode 100644
index 100e625..0000000
--- 
a/tck/mp-jwt-embedded/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.tomee.microprofile.jwt.MPJWTInitializer
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tomee/blob/72c08321/tck/mp-jwt-embedded/src/main/resources/META-INF/services/org.apache.tomee.microprofile.jwt.principal.JWTCallerPrincipalFactory
----------------------------------------------------------------------
diff --git 
a/tck/mp-jwt-embedded/src/main/resources/META-INF/services/org.apache.tomee.microprofile.jwt.principal.JWTCallerPrincipalFactory
 
b/tck/mp-jwt-embedded/src/main/resources/META-INF/services/org.apache.tomee.microprofile.jwt.principal.JWTCallerPrincipalFactory
deleted file mode 100644
index 21c9831..0000000
--- 
a/tck/mp-jwt-embedded/src/main/resources/META-INF/services/org.apache.tomee.microprofile.jwt.principal.JWTCallerPrincipalFactory
+++ /dev/null
@@ -1 +0,0 @@
-org.apache.tomee.microprofile.jwt.principal.DefaultJWTCallerPrincipalFactory
\ No newline at end of file

Reply via email to