diff --git a/jans-scim/service/pom.xml b/jans-scim/service/pom.xml
index b8335de7963..5190b811fae 100644
--- a/jans-scim/service/pom.xml
+++ b/jans-scim/service/pom.xml
@@ -93,10 +93,6 @@
io.jans
jans-auth-client
-
- io.jans
- jans-auth-common
-
diff --git a/jans-scim/service/src/main/java/io/jans/scim/service/ExternalIdGeneratorService.java b/jans-scim/service/src/main/java/io/jans/scim/service/ExternalIdGeneratorService.java
new file mode 100644
index 00000000000..b8a4cf18a01
--- /dev/null
+++ b/jans-scim/service/src/main/java/io/jans/scim/service/ExternalIdGeneratorService.java
@@ -0,0 +1,50 @@
+/*
+ * Janssen Project software is available under the Apache License (2004). See http://www.apache.org/licenses/ for full text.
+ *
+ * Copyright (c) 2020, Janssen Project
+ */
+
+package io.jans.scim.service;
+
+import io.jans.model.SimpleCustomProperty;
+import io.jans.model.custom.script.CustomScriptType;
+import io.jans.model.custom.script.conf.CustomScriptConfiguration;
+import io.jans.model.custom.script.type.id.IdGeneratorType;
+import io.jans.service.custom.script.ExternalScriptService;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Named;
+import java.util.Map;
+
+/**
+ * @author gasmyr on 9/17/20.
+ */
+@ApplicationScoped
+@Named("externalIdGeneratorService")
+public class ExternalIdGeneratorService extends ExternalScriptService {
+
+ private static final long serialVersionUID = 1727751544454591273L;
+
+ public ExternalIdGeneratorService() {
+ super(CustomScriptType.ID_GENERATOR);
+ }
+
+ public String executeExternalGenerateIdMethod(CustomScriptConfiguration customScriptConfiguration, String appId, String idType, String idPrefix) {
+ try {
+ log.debug("Executing python 'generateId' method");
+ IdGeneratorType externalType = (IdGeneratorType) customScriptConfiguration.getExternalType();
+ Map configurationAttributes = customScriptConfiguration.getConfigurationAttributes();
+ return externalType.generateId(appId, idType, idPrefix, configurationAttributes);
+ } catch (Exception ex) {
+ log.error(ex.getMessage(), ex);
+ saveScriptError(customScriptConfiguration.getCustomScript(), ex);
+ }
+
+ return null;
+ }
+
+ public String executeExternalDefaultGenerateIdMethod(String appId, String idType, String idPrefix) {
+ return executeExternalGenerateIdMethod(this.defaultExternalCustomScript, appId, idType, idPrefix);
+ }
+
+}
diff --git a/jans-scim/service/src/main/java/io/jans/scim/service/GroupService.java b/jans-scim/service/src/main/java/io/jans/scim/service/GroupService.java
index 2c531780888..c9bcb8cd4ac 100644
--- a/jans-scim/service/src/main/java/io/jans/scim/service/GroupService.java
+++ b/jans-scim/service/src/main/java/io/jans/scim/service/GroupService.java
@@ -6,7 +6,6 @@
package io.jans.scim.service;
-import io.jans.as.common.service.common.ExternalIdGeneratorService;
import io.jans.as.model.common.IdType;
import io.jans.orm.PersistenceEntryManager;
import io.jans.orm.exception.EntryPersistenceException;
@@ -17,6 +16,7 @@
import io.jans.scim.model.GluuCustomPerson;
import io.jans.scim.model.GluuGroup;
import io.jans.scim.model.GluuGroupVisibility;
+import io.jans.scim.service.ExternalIdGeneratorService;
import io.jans.scim.util.OxTrustConstants;
import io.jans.util.ArrayHelper;
import io.jans.util.StringHelper;
diff --git a/jans-scim/service/src/main/java/io/jans/scim/service/PersonService.java b/jans-scim/service/src/main/java/io/jans/scim/service/PersonService.java
index 593f2685306..988bdb132ec 100644
--- a/jans-scim/service/src/main/java/io/jans/scim/service/PersonService.java
+++ b/jans-scim/service/src/main/java/io/jans/scim/service/PersonService.java
@@ -6,7 +6,6 @@
package io.jans.scim.service;
-import io.jans.as.common.service.common.ExternalIdGeneratorService;
import io.jans.as.model.common.IdType;
import io.jans.model.GluuAttribute;
import io.jans.orm.PersistenceEntryManager;
@@ -20,6 +19,7 @@
import io.jans.scim.model.GluuCustomAttribute;
import io.jans.scim.model.GluuCustomPerson;
import io.jans.scim.model.User;
+import io.jans.scim.service.ExternalIdGeneratorService;
import io.jans.scim.util.OxTrustConstants;
import io.jans.util.ArrayHelper;
import io.jans.util.OxConstants;