Class ZitadelRolesAugmentor

java.lang.Object
com.ammann.servicemanager.security.ZitadelRolesAugmentor
All Implemented Interfaces:
io.quarkus.security.identity.SecurityIdentityAugmentor

@ApplicationScoped public class ZitadelRolesAugmentor extends Object implements io.quarkus.security.identity.SecurityIdentityAugmentor
Security Identity Augmentor for ZITADEL role extraction.

ZITADEL stores roles in a custom claim format:

 "urn:zitadel:iam:org:project:roles": {
   "ADMIN_ROLE": { "orgId": "123" },
   "USER_ROLE": { "orgId": "123" }
 }
 

This augmentor extracts role names from the object keys and adds them to the SecurityIdentity, making them available for @RolesAllowed checks.

Supports both:

  • JWT tokens (via JsonWebToken claim extraction)
  • Opaque tokens (via TokenIntrospection attributes)
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    io.smallrye.mutiny.Uni<io.quarkus.security.identity.SecurityIdentity>
    augment(io.quarkus.security.identity.SecurityIdentity identity, io.quarkus.security.identity.AuthenticationRequestContext context)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.quarkus.security.identity.SecurityIdentityAugmentor

    augment, priority
  • Constructor Details

    • ZitadelRolesAugmentor

      public ZitadelRolesAugmentor()
  • Method Details

    • augment

      public io.smallrye.mutiny.Uni<io.quarkus.security.identity.SecurityIdentity> augment(io.quarkus.security.identity.SecurityIdentity identity, io.quarkus.security.identity.AuthenticationRequestContext context)
      Specified by:
      augment in interface io.quarkus.security.identity.SecurityIdentityAugmentor