This is an automated email from the ASF dual-hosted git repository.

ilgrosso pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/master by this push:
     new a9b3d22d03 Create Groovy CommandArgs instances under GroovyInterceptor
a9b3d22d03 is described below

commit a9b3d22d0325ecb4afc51bf2fc73d429100358b7
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Thu Aug 20 14:11:23 2026 +0200

    Create Groovy CommandArgs instances under GroovyInterceptor
---
 .../implementation/ImplementationManager.java      | 22 +++++++++++++++++++++-
 pom.xml                                            |  2 +-
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git 
a/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
 
b/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
index 99a89b3490..2f9c890be2 100644
--- 
a/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
+++ 
b/core/spring/src/main/java/org/apache/syncope/core/spring/implementation/ImplementationManager.java
@@ -20,6 +20,7 @@ package org.apache.syncope.core.spring.implementation;
 
 import groovy.grape.GrabAnnotationTransformation;
 import groovy.lang.GroovyClassLoader;
+import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
@@ -246,7 +247,7 @@ public final class ImplementationManager {
                 && (commandArgsClass.getEnclosingClass() == null
                 || Modifier.isStatic(commandArgsClass.getModifiers()))) {
 
-            return commandArgsClass.getDeclaredConstructor().newInstance();
+            return newInstance(commandArgsClass, impl.getEngine());
         }
 
         throw new IllegalArgumentException(
@@ -277,6 +278,25 @@ public final class ImplementationManager {
         return Pair.of((Class<T>) clazz, false);
     }
 
+    private static <T> T newInstance(final Class<T> clazz, final 
ImplementationEngine engine)
+            throws NoSuchMethodException, InstantiationException, 
IllegalAccessException, IllegalArgumentException,
+            InvocationTargetException {
+
+        if (engine == ImplementationEngine.JAVA) {
+            return clazz.getDeclaredConstructor().newInstance();
+        }
+
+        GroovyInterceptor interceptor = new SandboxInterceptor(
+                
ApplicationContextProvider.getApplicationContext().getBean(Blacklist.class));
+        try {
+            interceptor.register();
+
+            return clazz.getDeclaredConstructor().newInstance();
+        } finally {
+            interceptor.unregister();
+        }
+    }
+
     private static <T> T createBean(final Class<T> clazz, final 
ImplementationEngine engine) {
         if (engine == ImplementationEngine.JAVA) {
             return 
ApplicationContextProvider.getBeanFactory().createBean(clazz);
diff --git a/pom.xml b/pom.xml
index 861c86b108..d1950d8e6e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -420,7 +420,7 @@ under the License.
     <connid.rest.version>1.2.0-SNAPSHOT</connid.rest.version>
     <connid.db.version>2.5.0-SNAPSHOT</connid.db.version>
     <connid.csvdir.version>0.8.10</connid.csvdir.version>
-    <connid.ldap.version>1.5.10</connid.ldap.version>
+    <connid.ldap.version>1.5.11-SNAPSHOT</connid.ldap.version>
     <connid.ad.version>1.4.0</connid.ad.version>
     <connid.googleapps.version>1.4.6</connid.googleapps.version>
     <connid.azure.version>3.0.0</connid.azure.version>

Reply via email to