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);
}
}