Skip to content

Commit

Permalink
trying commitImpl in a new transaction, even though this should be ru…
Browse files Browse the repository at this point in the history
…n in the existing one. (#35)
  • Loading branch information
xgp authored Jul 26, 2023
1 parent 29bad71 commit 35511aa
Showing 1 changed file with 11 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.models.RealmModel;
import org.keycloak.models.UserModel;
import org.keycloak.models.utils.KeycloakModelUtils;

/**
* User added/removed listener base class. Just provide a user add/remove handler. Inspired by
Expand All @@ -22,6 +23,8 @@
public abstract class UserEventListenerProviderFactory
extends AbstractEventListenerProviderFactory {

private KeycloakSessionFactory factory;

@Override
public EventListenerProvider create(KeycloakSession session) {
return new AbstractEventListenerProvider() {
Expand Down Expand Up @@ -53,9 +56,13 @@ void userAdded(String realmId, String userId) {
new AbstractKeycloakTransaction() {
@Override
protected void commitImpl() {
RealmModel realm = session.realms().getRealm(realmId);
UserModel user = session.users().getUserById(realm, userId);
getUserChangedHandler().onUserAdded(session, realm, user);
KeycloakModelUtils.runJobInTransaction(
factory,
(s) -> {
RealmModel realm = s.realms().getRealm(realmId);
UserModel user = s.users().getUserById(realm, userId);
getUserChangedHandler().onUserAdded(s, realm, user);
});
}

@Override
Expand All @@ -75,6 +82,7 @@ abstract class UserChangedHandler {

@Override
public void postInit(KeycloakSessionFactory factory) {
this.factory = factory;
factory.register(
(event) -> {
if (event instanceof UserModel.UserRemovedEvent) {
Expand Down

0 comments on commit 35511aa

Please sign in to comment.