Class EventBasedWorkflowProvider

java.lang.Object
org.keycloak.models.workflow.EventBasedWorkflowProvider
All Implemented Interfaces:
WorkflowProvider, Provider
Direct Known Subclasses:
AbstractUserWorkflowProvider

public class EventBasedWorkflowProvider extends Object implements WorkflowProvider
  • Constructor Details

  • Method Details

    • getEligibleResourcesForInitialStep

      public List<String> getEligibleResourcesForInitialStep()
      Description copied from interface: WorkflowProvider
      Finds all resources that are eligible for the first action of a workflow.
      Specified by:
      getEligibleResourcesForInitialStep in interface WorkflowProvider
      Returns:
      A list of eligible resource IDs.
    • supports

      public boolean supports(ResourceType type)
      Description copied from interface: WorkflowProvider
      Checks if the provider supports resources of the specified type.
      Specified by:
      supports in interface WorkflowProvider
      Parameters:
      type - the resource type.
      Returns:
      true if the provider supports the specified type; false otherwise.
    • activateOnEvent

      public boolean activateOnEvent(WorkflowEvent event)
      Description copied from interface: WorkflowProvider
      Indicates whether the workflow supports being activated for a resource based on the event or not. If true, the workflow will be activated for the resource. For scheduled workflows, this means the first action will be scheduled. For immediate workflows, this means all actions will be executed right away. At the very least, implementations should validate the event's resource type and operation to ensure the workflow will only be activated on expected operations being performed on the expected type.
      Specified by:
      activateOnEvent in interface WorkflowProvider
      Parameters:
      event - a WorkflowEvent containing details of the event that was triggered such as operation (CREATE, LOGIN, etc.), the resource type, and the resource id.
      Returns:
      true if the workflow can be activated based on the received event; false otherwise.
    • isActivationEvent

      protected boolean isActivationEvent(WorkflowEvent event)
    • deactivateOnEvent

      public boolean deactivateOnEvent(WorkflowEvent event)
      Description copied from interface: WorkflowProvider
      Indicates whether the workflow supports being deactivated for a resource based on the event or not. If true, the workflow will be deactivated for the resource, meaning any existing scheduled actions will be removed and no further actions will be executed. At the very least, implementations should validate the event's resource type and operation to ensure the workflow will only be deactivated on expected operations being performed on the expected type.
      Specified by:
      deactivateOnEvent in interface WorkflowProvider
      Parameters:
      event - a WorkflowEvent containing details of the event that was triggered such as operation (CREATE, LOGIN, etc.), the resource type, and the resource id.
      Returns:
      true if the workflow can be deactivated based on the received event; false otherwise.
    • resetOnEvent

      public boolean resetOnEvent(WorkflowEvent event)
      Description copied from interface: WorkflowProvider
      Indicates whether the workflow supports being reset (i.e. go back to the first action) based on the event received or not. By default, this method returns false as most workflows won't support this kind of flow, but specific workflows such as one based on a resource's last updated time, or last used time, can signal that they expect the process to start over once the timestamp they are based on is updated. At the very least, implementations should validate the event's resource type and operation to ensure the workflow will only be reset on expected operations being performed on the expected type.
      Specified by:
      resetOnEvent in interface WorkflowProvider
      Parameters:
      event - a WorkflowEvent containing details of the event that was triggered such as operation (CREATE, LOGIN, etc.), the resource type, and the resource id.
      Returns:
      true if the workflow supports resetting the flow based on the received event; false otherwise.
    • isResetEvent

      protected boolean isResetEvent(WorkflowEvent event)
    • close

      public void close()
      Specified by:
      close in interface Provider
    • evaluate

      protected boolean evaluate(WorkflowEvent event)
    • resolveCondition

      protected WorkflowConditionProvider resolveCondition(String providerId)
    • getModel

      protected ComponentModel getModel()
    • getSession

      protected KeycloakSession getSession()