use of org.eclipse.microprofile.jwt.Claim in project helidon by oracle.
the class JwtAuthCdiExtension method collectClaimProducer.
/**
* Process each injection point for {@link Claim}.
*
* @param pip event from CDI container
*/
void collectClaimProducer(@Observes ProcessInjectionPoint<?, ?> pip) {
Claim claim = pip.getInjectionPoint().getAnnotated().getAnnotation(Claim.class);
if (claim != null) {
if ((claim.standard() != Claims.UNKNOWN) && !claim.value().isEmpty()) {
throw new DeploymentException("Claim annotation should not have both values at value and standard! " + "@Claim(value=" + claim.value() + ", standard=Claims." + claim.standard().name() + ")");
}
InjectionPoint ip = pip.getInjectionPoint();
Type type = ip.getType();
FieldTypes ft = FieldTypes.forType(type);
ClaimLiteral q = new ClaimLiteral((claim.standard() == Claims.UNKNOWN) ? claim.value() : claim.standard().name(), ip.getMember().getDeclaringClass().getName() + "." + getFieldName(ip), ft.isOptional(), ft.isClaimValue(), ft.getField0().getRawType(), ft.getField1().getRawType(), ft.getField2().getRawType(), ft.getField3().getRawType(), type.toString());
pip.configureInjectionPoint().addQualifier(q);
if (ft.getField0().getRawType().equals(ClaimValue.class)) {
claimValueQualifiers.add(new ClaimIP(q, type));
} else {
qualifiers.add(new ClaimIP(q, type));
}
}
}
Aggregations