From dacf28af84e17f13fc3d03d63cb4ee2c5dfdc927 Mon Sep 17 00:00:00 2001 From: vramik Date: Tue, 12 Oct 2021 16:28:05 +0200 Subject: [PATCH] KEYCLOAK-19536 Removal of client creates new instance of provider for each client role --- .../java/org/keycloak/models/jpa/JpaRealmProviderFactory.java | 3 ++- .../keycloak/models/map/client/MapClientProviderFactory.java | 2 +- .../org/keycloak/models/map/group/MapGroupProviderFactory.java | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProviderFactory.java b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProviderFactory.java index 5afe3469cf4..db4496bc850 100755 --- a/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProviderFactory.java +++ b/model/jpa/src/main/java/org/keycloak/models/jpa/JpaRealmProviderFactory.java @@ -26,6 +26,7 @@ import org.keycloak.models.RealmProviderFactory; import javax.persistence.EntityManager; import org.keycloak.models.ClientModel; import org.keycloak.models.RealmModel; +import org.keycloak.models.RealmProvider; import org.keycloak.models.RoleContainerModel; import org.keycloak.models.RoleContainerModel.RoleRemovedEvent; import org.keycloak.models.RoleModel; @@ -83,7 +84,7 @@ public class JpaRealmProviderFactory implements RealmProviderFactory, ProviderEv } else { return; } - create(e.getKeycloakSession()).preRemove(realm, role); + ((JpaRealmProvider) e.getKeycloakSession().getProvider(RealmProvider.class)).preRemove(realm, role); } } diff --git a/model/map/src/main/java/org/keycloak/models/map/client/MapClientProviderFactory.java b/model/map/src/main/java/org/keycloak/models/map/client/MapClientProviderFactory.java index 9070912f1a4..a82c1985f34 100644 --- a/model/map/src/main/java/org/keycloak/models/map/client/MapClientProviderFactory.java +++ b/model/map/src/main/java/org/keycloak/models/map/client/MapClientProviderFactory.java @@ -81,7 +81,7 @@ public class MapClientProviderFactory extends AbstractMapProviderFactory