Search in sources :

Example 21 with Claim

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));
        }
    }
}
Also used : Type(java.lang.reflect.Type) ParameterizedType(java.lang.reflect.ParameterizedType) ProcessInjectionPoint(jakarta.enterprise.inject.spi.ProcessInjectionPoint) InjectionPoint(jakarta.enterprise.inject.spi.InjectionPoint) DeploymentException(jakarta.enterprise.inject.spi.DeploymentException) Claim(org.eclipse.microprofile.jwt.Claim)

Aggregations

Claim (org.eclipse.microprofile.jwt.Claim)21 JsonString (javax.json.JsonString)8 Annotation (java.lang.annotation.Annotation)7 InjectionPoint (javax.enterprise.inject.spi.InjectionPoint)7 Produces (javax.enterprise.inject.Produces)6 ParameterizedType (java.lang.reflect.ParameterizedType)5 Type (java.lang.reflect.Type)5 DeploymentException (javax.enterprise.inject.spi.DeploymentException)4 ProcessInjectionPoint (javax.enterprise.inject.spi.ProcessInjectionPoint)3 JsonNumber (javax.json.JsonNumber)3 Optional (java.util.Optional)2 Set (java.util.Set)2 ApplicationScoped (javax.enterprise.context.ApplicationScoped)2 SessionScoped (javax.enterprise.context.SessionScoped)2 BeanAttributes (javax.enterprise.inject.spi.BeanAttributes)2 ProcessBeanAttributes (javax.enterprise.inject.spi.ProcessBeanAttributes)2 JsonObject (javax.json.JsonObject)2 ClaimValue (org.eclipse.microprofile.jwt.ClaimValue)2 JWTAuthenticationMechanism (fish.payara.microprofile.jwtauth.eesecurity.JWTAuthenticationMechanism)1 SignedJWTIdentityStore (fish.payara.microprofile.jwtauth.eesecurity.SignedJWTIdentityStore)1