public T getClaim()

in src/main/java/org/apache/geronimo/microprofile/impl/jwtauth/jwt/GeronimoJsonWebToken.java [53:88]


    public <T> T getClaim(final String claimName) {
        try {
            final Claims claim = Claims.valueOf(claimName);
            if (claim == Claims.raw_token) {
                return (T) raw;
            }
            if (claim.getType() == String.class) {
                return (T) delegate.getString(claimName);
            }
            if (claim.getType() == Long.class) {
                return (T) Long.valueOf(delegate.getJsonNumber(claimName).longValue());
            }
            if (claim.getType() == JsonObject.class) {
                return (T) delegate.getJsonObject(claimName);
            }
            if (claim.getType() == Set.class) {
                final JsonValue jsonValue = delegate.get(claimName);
                if (jsonValue == null) {
                    return null;
                }
                if (jsonValue.getValueType() == JsonValue.ValueType.ARRAY) {
                    return (T) JsonArray.class.cast(jsonValue).stream()
                            .map(this::toString)
                            .collect(toSet());
                }
                if (jsonValue.getValueType() == JsonValue.ValueType.STRING) {
                    return (T) Stream.of(JsonString.class.cast(jsonValue).getString().split(","))
                            .collect(toSet());
                }
                return (T) jsonValue;
            }
            return (T) delegate.get(claimName);
        } catch (final IllegalArgumentException iae) {
            return (T) delegate.get(claimName);
        }
    }