From c1fdbb0be479ec29c9badfed1dd3e8edcd6e7bab Mon Sep 17 00:00:00 2001 From: Pedro Igor Date: Thu, 18 Sep 2025 09:50:45 -0300 Subject: [PATCH] Better names for workflow events Closes #42389 Signed-off-by: Pedro Igor --- .../workflow/UserCreationTimeWorkflowProvider.java | 4 ++-- .../UserSessionRefreshTimeWorkflowProvider.java | 8 ++++---- .../models/workflow/ResourceOperationType.java | 12 ++++++------ .../BrokeredUserSessionRefreshTimeWorkflowTest.java | 6 +++--- .../workflow/GroupMembershipJoinWorkflowTest.java | 4 ++-- .../model/workflow/RoleWorkflowConditionTest.java | 2 +- .../workflow/UserAttributeWorkflowConditionTest.java | 2 +- .../workflow/UserSessionRefreshTimeWorkflowTest.java | 6 +++--- .../admin/model/workflow/WorkflowManagementTest.java | 12 ++++++------ 9 files changed, 28 insertions(+), 28 deletions(-) diff --git a/model/jpa/src/main/java/org/keycloak/models/workflow/UserCreationTimeWorkflowProvider.java b/model/jpa/src/main/java/org/keycloak/models/workflow/UserCreationTimeWorkflowProvider.java index 6baaaac7f74..9269627e0aa 100644 --- a/model/jpa/src/main/java/org/keycloak/models/workflow/UserCreationTimeWorkflowProvider.java +++ b/model/jpa/src/main/java/org/keycloak/models/workflow/UserCreationTimeWorkflowProvider.java @@ -20,7 +20,7 @@ package org.keycloak.models.workflow; import org.keycloak.component.ComponentModel; import org.keycloak.models.KeycloakSession; -import static org.keycloak.models.workflow.ResourceOperationType.CREATE; +import static org.keycloak.models.workflow.ResourceOperationType.USER_ADD; public class UserCreationTimeWorkflowProvider extends AbstractUserWorkflowProvider { @@ -30,6 +30,6 @@ public class UserCreationTimeWorkflowProvider extends AbstractUserWorkflowProvid @Override protected boolean isActivationEvent(WorkflowEvent event) { - return super.isActivationEvent(event) || CREATE.equals(event.getOperation()); + return super.isActivationEvent(event) || USER_ADD.equals(event.getOperation()); } } diff --git a/model/jpa/src/main/java/org/keycloak/models/workflow/UserSessionRefreshTimeWorkflowProvider.java b/model/jpa/src/main/java/org/keycloak/models/workflow/UserSessionRefreshTimeWorkflowProvider.java index 382e295169f..c5a64d4889d 100644 --- a/model/jpa/src/main/java/org/keycloak/models/workflow/UserSessionRefreshTimeWorkflowProvider.java +++ b/model/jpa/src/main/java/org/keycloak/models/workflow/UserSessionRefreshTimeWorkflowProvider.java @@ -17,8 +17,8 @@ package org.keycloak.models.workflow; -import static org.keycloak.models.workflow.ResourceOperationType.CREATE; -import static org.keycloak.models.workflow.ResourceOperationType.LOGIN; +import static org.keycloak.models.workflow.ResourceOperationType.USER_ADD; +import static org.keycloak.models.workflow.ResourceOperationType.USER_LOGIN; import java.util.List; @@ -33,11 +33,11 @@ public class UserSessionRefreshTimeWorkflowProvider extends AbstractUserWorkflow @Override protected boolean isActivationEvent(WorkflowEvent event) { - return super.isActivationEvent(event) || List.of(CREATE, LOGIN).contains(event.getOperation()); + return super.isActivationEvent(event) || List.of(USER_ADD, USER_LOGIN).contains(event.getOperation()); } @Override protected boolean isResetEvent(WorkflowEvent event) { - return LOGIN.equals(event.getOperation()); + return USER_LOGIN.equals(event.getOperation()); } } diff --git a/server-spi-private/src/main/java/org/keycloak/models/workflow/ResourceOperationType.java b/server-spi-private/src/main/java/org/keycloak/models/workflow/ResourceOperationType.java index 76a0cf83e65..99526a5b31c 100644 --- a/server-spi-private/src/main/java/org/keycloak/models/workflow/ResourceOperationType.java +++ b/server-spi-private/src/main/java/org/keycloak/models/workflow/ResourceOperationType.java @@ -15,12 +15,12 @@ import org.keycloak.provider.ProviderEvent; public enum ResourceOperationType { - CREATE(OperationType.CREATE, EventType.REGISTER), - LOGIN(EventType.LOGIN), - ADD_FEDERATED_IDENTITY(new Class[] {FederatedIdentityCreatedEvent.class}, new Class[] {FederatedIdentityRemovedEvent.class}), - REMOVE_FEDERATED_IDENTITY(FederatedIdentityRemovedEvent.class), - GROUP_MEMBERSHIP_JOIN(GroupMemberJoinEvent.class), - ROLE_GRANTED(new Class[] {RoleGrantedEvent.class}, new Class[] {RoleRevokedEvent.class}), + USER_ADD(OperationType.CREATE, EventType.REGISTER), + USER_LOGIN(EventType.LOGIN), + USER_FEDERATED_IDENTITY_ADD(new Class[] {FederatedIdentityCreatedEvent.class}, new Class[] {FederatedIdentityRemovedEvent.class}), + USER_FEDERATED_IDENTITY_REMOVE(FederatedIdentityRemovedEvent.class), + USER_GROUP_MEMBERSHIP_ADD(GroupMemberJoinEvent.class), + USER_ROLE_ADD(new Class[] {RoleGrantedEvent.class}, new Class[] {RoleRevokedEvent.class}), AD_HOC(new Class[] {}); private final List types; diff --git a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/BrokeredUserSessionRefreshTimeWorkflowTest.java b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/BrokeredUserSessionRefreshTimeWorkflowTest.java index a89926888c0..98e15170b4b 100644 --- a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/BrokeredUserSessionRefreshTimeWorkflowTest.java +++ b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/BrokeredUserSessionRefreshTimeWorkflowTest.java @@ -127,7 +127,7 @@ public class BrokeredUserSessionRefreshTimeWorkflowTest { public void testInvalidateWorkflowOnIdentityProviderRemoval() { consumerRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserSessionRefreshTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.LOGIN.toString()) + .onEvent(ResourceOperationType.USER_LOGIN.toString()) .onConditions(WorkflowConditionRepresentation.create() .of(IdentityProviderWorkflowConditionFactory.ID) .withConfig(IdentityProviderWorkflowConditionFactory.EXPECTED_ALIASES, IDP_OIDC_ALIAS) @@ -163,7 +163,7 @@ public class BrokeredUserSessionRefreshTimeWorkflowTest { public void tesRunStepOnFederatedUser() { consumerRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserSessionRefreshTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.LOGIN.toString()) + .onEvent(ResourceOperationType.USER_LOGIN.toString()) .onConditions(WorkflowConditionRepresentation.create() .of(IdentityProviderWorkflowConditionFactory.ID) .withConfig(IdentityProviderWorkflowConditionFactory.EXPECTED_ALIASES, IDP_OIDC_ALIAS) @@ -234,7 +234,7 @@ public class BrokeredUserSessionRefreshTimeWorkflowTest { public void testAddRemoveFedIdentityAffectsWorkflowAssociation() { consumerRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserSessionRefreshTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.ADD_FEDERATED_IDENTITY.toString()) + .onEvent(ResourceOperationType.USER_FEDERATED_IDENTITY_ADD.toString()) .onConditions(WorkflowConditionRepresentation.create() .of(IdentityProviderWorkflowConditionFactory.ID) .withConfig(IdentityProviderWorkflowConditionFactory.EXPECTED_ALIASES, IDP_OIDC_ALIAS) diff --git a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/GroupMembershipJoinWorkflowTest.java b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/GroupMembershipJoinWorkflowTest.java index 47aefb441a7..1df1f205572 100644 --- a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/GroupMembershipJoinWorkflowTest.java +++ b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/GroupMembershipJoinWorkflowTest.java @@ -68,7 +68,7 @@ public class GroupMembershipJoinWorkflowTest { List expectedWorkflows = WorkflowRepresentation.create() .of(EventBasedWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.GROUP_MEMBERSHIP_JOIN.name()) + .onEvent(ResourceOperationType.USER_GROUP_MEMBERSHIP_ADD.name()) .onConditions(WorkflowConditionRepresentation.create() .of(GroupMembershipWorkflowConditionFactory.ID) .withConfig(GroupMembershipWorkflowConditionFactory.EXPECTED_GROUPS, groupId) @@ -126,7 +126,7 @@ public class GroupMembershipJoinWorkflowTest { managedRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserSessionRefreshTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.LOGIN.toString()) + .onEvent(ResourceOperationType.USER_LOGIN.toString()) .onConditions(WorkflowConditionRepresentation.create() .of(GroupMembershipWorkflowConditionFactory.ID) .withConfig(GroupMembershipWorkflowConditionFactory.EXPECTED_GROUPS, groupId) diff --git a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/RoleWorkflowConditionTest.java b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/RoleWorkflowConditionTest.java index d29d9243e79..587c65519eb 100644 --- a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/RoleWorkflowConditionTest.java +++ b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/RoleWorkflowConditionTest.java @@ -138,7 +138,7 @@ public class RoleWorkflowConditionTest { List expectedWorkflows = WorkflowRepresentation.create() .of(EventBasedWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.ROLE_GRANTED.name()) + .onEvent(ResourceOperationType.USER_ROLE_ADD.name()) .recurring() .onConditions(WorkflowConditionRepresentation.create() .of(RoleWorkflowConditionFactory.ID) diff --git a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/UserAttributeWorkflowConditionTest.java b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/UserAttributeWorkflowConditionTest.java index 5cc1119751d..877b38d47bb 100644 --- a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/UserAttributeWorkflowConditionTest.java +++ b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/UserAttributeWorkflowConditionTest.java @@ -133,7 +133,7 @@ public class UserAttributeWorkflowConditionTest { private void createWorkflow(Map> attributes) { List expectedWorkflows = WorkflowRepresentation.create() .of(EventBasedWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.CREATE.name()) + .onEvent(ResourceOperationType.USER_ADD.name()) .recurring() .onConditions(WorkflowConditionRepresentation.create() .of(UserAttributeWorkflowConditionFactory.ID) diff --git a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/UserSessionRefreshTimeWorkflowTest.java b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/UserSessionRefreshTimeWorkflowTest.java index fa63a35f1e3..5288d4fff4b 100644 --- a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/UserSessionRefreshTimeWorkflowTest.java +++ b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/UserSessionRefreshTimeWorkflowTest.java @@ -102,7 +102,7 @@ public class UserSessionRefreshTimeWorkflowTest { public void testDisabledUserAfterInactivityPeriod() { managedRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserSessionRefreshTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.LOGIN.toString()) + .onEvent(ResourceOperationType.USER_LOGIN.toString()) .withSteps( WorkflowStepRepresentation.create().of(NotifyUserStepProviderFactory.ID) .after(Duration.ofDays(5)) @@ -184,7 +184,7 @@ public class UserSessionRefreshTimeWorkflowTest { public void testMultipleWorkflows() { managedRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserSessionRefreshTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.LOGIN.toString()) + .onEvent(ResourceOperationType.USER_LOGIN.toString()) .withSteps( WorkflowStepRepresentation.create().of(NotifyUserStepProviderFactory.ID) .after(Duration.ofDays(5)) @@ -192,7 +192,7 @@ public class UserSessionRefreshTimeWorkflowTest { .withConfig("custom_message", "notifier1_message") .build() ).of(UserSessionRefreshTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.LOGIN.toString()) + .onEvent(ResourceOperationType.USER_LOGIN.toString()) .withSteps( WorkflowStepRepresentation.create().of(NotifyUserStepProviderFactory.ID) .after(Duration.ofDays(10)) diff --git a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/WorkflowManagementTest.java b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/WorkflowManagementTest.java index cf3401ba011..7c31a681ed9 100644 --- a/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/WorkflowManagementTest.java +++ b/tests/base/src/test/java/org/keycloak/tests/admin/model/workflow/WorkflowManagementTest.java @@ -142,14 +142,14 @@ public class WorkflowManagementTest { workflows.create(WorkflowRepresentation.create() .of(UserCreationTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.CREATE.toString()) + .onEvent(ResourceOperationType.USER_ADD.toString()) .recurring() .withSteps( WorkflowStepRepresentation.create().of(NotifyUserStepProviderFactory.ID) .after(Duration.ofDays(5)) .build() ).of(EventBasedWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.LOGIN.toString()) + .onEvent(ResourceOperationType.USER_LOGIN.toString()) .recurring() .withSteps( WorkflowStepRepresentation.create().of(NotifyUserStepProviderFactory.ID) @@ -218,7 +218,7 @@ public class WorkflowManagementTest { public void testWorkflowDoesNotFallThroughStepsInSingleRun() { managedRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserCreationTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.CREATE.toString()) + .onEvent(ResourceOperationType.USER_ADD.toString()) .withSteps( WorkflowStepRepresentation.create().of(NotifyUserStepProviderFactory.ID) .after(Duration.ofDays(5)) @@ -293,7 +293,7 @@ public class WorkflowManagementTest { managedRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserCreationTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.ADD_FEDERATED_IDENTITY.name()) + .onEvent(ResourceOperationType.USER_FEDERATED_IDENTITY_ADD.name()) .onConditions(WorkflowConditionRepresentation.create() .of(IdentityProviderWorkflowConditionFactory.ID) .withConfig(IdentityProviderWorkflowConditionFactory.EXPECTED_ALIASES, "someidp") @@ -392,7 +392,7 @@ public class WorkflowManagementTest { // create a test workflow managedRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserCreationTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.CREATE.toString()) + .onEvent(ResourceOperationType.USER_ADD.toString()) .name("test-workflow") .withSteps( WorkflowStepRepresentation.create().of(NotifyUserStepProviderFactory.ID) @@ -508,7 +508,7 @@ public class WorkflowManagementTest { public void testRecurringWorkflow() { managedRealm.admin().workflows().create(WorkflowRepresentation.create() .of(UserCreationTimeWorkflowProviderFactory.ID) - .onEvent(ResourceOperationType.CREATE.toString()) + .onEvent(ResourceOperationType.USER_ADD.toString()) .recurring() .withSteps( WorkflowStepRepresentation.create().of(NotifyUserStepProviderFactory.ID)