diff --git a/CHANGELOG.md b/CHANGELOG.md index f6741c1..e601cf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes in keycloak-group-management will be documented in this file The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.5.6] - 2025-02-25 + +### Fixed +- Return 409 conflict for concurrent group membership update + ## [1.5.5] - 2025-02-25 ### Fixed diff --git a/pom.xml b/pom.xml index 889ee80..edcb8e4 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 3.2.7.Final 17 17 - 1.5.5 + 1.5.6 diff --git a/src/main/java/org/rciam/plugins/groups/services/GroupAdminGroupMember.java b/src/main/java/org/rciam/plugins/groups/services/GroupAdminGroupMember.java index 2b1ed0f..51b84cd 100644 --- a/src/main/java/org/rciam/plugins/groups/services/GroupAdminGroupMember.java +++ b/src/main/java/org/rciam/plugins/groups/services/GroupAdminGroupMember.java @@ -22,6 +22,7 @@ import org.keycloak.email.EmailException; import org.keycloak.models.GroupModel; import org.keycloak.models.KeycloakSession; +import org.keycloak.models.ModelException; import org.keycloak.models.RealmModel; import org.keycloak.models.UserModel; import org.keycloak.models.utils.ModelToRepresentation; @@ -129,7 +130,7 @@ public Response updateMember(UserGroupMembershipExtensionRepresentation rep) { }); } catch (EmailException e) { ServicesLogger.LOGGER.failedToSendEmail(e); - } catch (OptimisticLockException | StaleObjectStateException e) { + } catch (ModelException | OptimisticLockException | StaleObjectStateException e) { e.printStackTrace(); return Response.status(Response.Status.CONFLICT).entity(String.format("Concurrent modification detected: conflicting group membership update for user %s in group %s.", member.getUser().getUsername(), group.getName())).build(); }