diff --git a/src/main/java/sh/libre/scim/core/ScimClient.java b/src/main/java/sh/libre/scim/core/ScimClient.java index 3551c5070eeb797bb57c11c826a9f8ef92f5fdf6..7b28823d0d0d2d8ad0d8cbf0d6ac7e0bb1b5c43c 100644 --- a/src/main/java/sh/libre/scim/core/ScimClient.java +++ b/src/main/java/sh/libre/scim/core/ScimClient.java @@ -72,6 +72,10 @@ public class ScimClient { M kcModel) { var adapter = getAdapter(aClass); adapter.apply(kcModel); + // If mapping exist then it was created by import so skip. + if (adapter.query("findById", adapter.getId()).getSingleResult() != null) { + return; + } var retry = registry.retry("create-" + adapter.getId()); var resource = retry.executeSupplier(() -> { try { diff --git a/src/main/java/sh/libre/scim/storage/ScimStorageProviderFactory.java b/src/main/java/sh/libre/scim/storage/ScimStorageProviderFactory.java index 081a1c6dacad3c92454bccd5bf7cbde66ddb67bb..272fc48f03292a3c28ba5ce17948c08ace0c0b9a 100644 --- a/src/main/java/sh/libre/scim/storage/ScimStorageProviderFactory.java +++ b/src/main/java/sh/libre/scim/storage/ScimStorageProviderFactory.java @@ -110,13 +110,9 @@ public class ScimStorageProviderFactory RealmModel realm = session.realms().getRealm(realmId); session.getContext().setRealm(realm); var client = new ScimClient(model, session); - model.setEnabled(false); - realm.updateComponent(model); client.sync(UserAdapter.class, result); client.sync(GroupAdapter.class, result); client.close(); - model.setEnabled(true); - realm.updateComponent(model); } });