Class ElytronDeploymentProcessor

java.lang.Object
io.quarkus.elytron.security.deployment.ElytronDeploymentProcessor

class ElytronDeploymentProcessor extends Object
The build time process for the security aspects of the deployment. This creates BuildSteps for integration with the Elytron security services. This supports the Elytron LegacyPropertiesSecurityRealm and SimpleMapBackedSecurityRealm realm implementations. Others could be added by creating an extension that produces a SecurityRealmBuildItem for the realm. Additional authentication mechanisms can be added by producing AuthConfigBuildItems and including the associated
invalid reference
io.undertow.servlet.ServletExtension
implementations to register the
invalid reference
io.undertow.security.api.AuthenticationMechanismFactory
. TODO: The handling of the configuration to SecurityRealm instance creation/loading is clumsy to not being able to have a config object annotated with @ConfigGroup inherit from another object with MP config annotated properties.
  • Constructor Details

    • ElytronDeploymentProcessor

      ElytronDeploymentProcessor()
  • Method Details

    • addBeans

      void addBeans(io.quarkus.deployment.annotations.BuildProducer<io.quarkus.arc.deployment.AdditionalBeanBuildItem> beans, List<ElytronPasswordMarkerBuildItem> pw, List<ElytronTokenMarkerBuildItem> token)
    • build

      SecurityDomainBuildItem build(io.quarkus.elytron.security.runtime.ElytronRecorder recorder, List<SecurityRealmBuildItem> realms) throws Exception
      Create the deployment SecurityDomain using the SecurityRealm build items that have been created.
      Parameters:
      recorder - - the runtime recorder class used to access runtime behaviors
      realms - - the previously created SecurityRealm runtime values
      Returns:
      the SecurityDomain runtime value build item
      Throws:
      Exception
    • identityManager

      void identityManager(io.quarkus.elytron.security.runtime.ElytronRecorder recorder, SecurityDomainBuildItem securityDomain, io.quarkus.arc.deployment.BeanContainerBuildItem bc)
    • loadRealm

      void loadRealm(io.quarkus.elytron.security.runtime.ElytronRecorder recorder, List<SecurityRealmBuildItem> realms) throws Exception
      For each SecurityRealm, load it's runtime state. This is currently a little strange due to how the AuthConfig is downcast to the type of SecurityRealm configuration instance.
      Parameters:
      recorder - - the runtime recorder class used to access runtime behaviors
      realms - - the previously created SecurityRealm runtime values
      Throws:
      Exception