You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2022/04/28 09:30:36 UTC

[syncope] branch master updated: [SYNCOPE-1465] Adding executor to SinglePullJobDelegate (#341)

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 0e2f847ac6 [SYNCOPE-1465] Adding executor to SinglePullJobDelegate (#341)
0e2f847ac6 is described below

commit 0e2f847ac6bb975b8cbf4a00cf5c212b49b0282f
Author: Francesco Chicchiriccò <il...@users.noreply.github.com>
AuthorDate: Thu Apr 28 11:30:31 2022 +0200

    [SYNCOPE-1465] Adding executor to SinglePullJobDelegate (#341)
---
 .../org/apache/syncope/core/logic/ReconciliationLogic.java    | 11 ++++++-----
 .../core/persistence/jpa/dao/AbstractJPAJSONAnyDAO.java       |  8 ++++----
 .../provisioning/api/pushpull/SyncopeSinglePullExecutor.java  |  3 ++-
 .../provisioning/java/job/AbstractSchedTaskJobDelegate.java   |  5 ++---
 .../syncope/core/provisioning/java/job/DefaultJobManager.java |  2 +-
 .../java/propagation/PriorityPropagationTaskExecutor.java     |  2 +-
 .../provisioning/java/pushpull/AbstractPullResultHandler.java |  5 ++---
 .../java/pushpull/DefaultUserPullResultHandler.java           |  3 +--
 .../provisioning/java/pushpull/SinglePullJobDelegate.java     |  4 +++-
 .../syncope/core/workflow/java/AbstractWorkflowAdapter.java   |  6 +-----
 .../src/test/java/org/apache/syncope/fit/AbstractITCase.java  |  2 +-
 .../org/apache/syncope/fit/enduser/AbstractEnduserITCase.java |  2 +-
 .../java/org/apache/syncope/fit/sra/AbstractSRAITCase.java    |  4 ++--
 .../sra/filters/BodyPropertyAddingGatewayFilterFactory.java   |  2 +-
 14 files changed, 28 insertions(+), 31 deletions(-)

diff --git a/core/idm/logic/src/main/java/org/apache/syncope/core/logic/ReconciliationLogic.java b/core/idm/logic/src/main/java/org/apache/syncope/core/logic/ReconciliationLogic.java
index 34fa534d45..1361304553 100644
--- a/core/idm/logic/src/main/java/org/apache/syncope/core/logic/ReconciliationLogic.java
+++ b/core/idm/logic/src/main/java/org/apache/syncope/core/logic/ReconciliationLogic.java
@@ -366,7 +366,7 @@ public class ReconciliationLogic extends AbstractTransactionalLogic<EntityTO> {
                     connectorManager.getConnector(provision.getResource()),
                     getAny(provision, anyKey),
                     pushTask,
-                    AuthContextUtils.getUsername()));
+                    AuthContextUtils.getWho()));
             if (!results.isEmpty() && results.get(0).getStatus() == ProvisioningReport.Status.FAILURE) {
                 sce.getElements().add(results.get(0).getMessage());
             }
@@ -405,7 +405,7 @@ public class ReconciliationLogic extends AbstractTransactionalLogic<EntityTO> {
                                 connectorManager.getConnector(provision.getResource()),
                                 match.getAny(),
                                 pushTask,
-                                AuthContextUtils.getUsername()));
+                                AuthContextUtils.getWho()));
                         if (!results.isEmpty() && results.get(0).getStatus() == ProvisioningReport.Status.FAILURE) {
                             sce.getElements().add(results.get(0).getMessage());
                         }
@@ -415,7 +415,7 @@ public class ReconciliationLogic extends AbstractTransactionalLogic<EntityTO> {
                                 connectorManager.getConnector(provision.getResource()),
                                 match.getLinkedAccount(),
                                 pushTask,
-                                AuthContextUtils.getUsername());
+                                AuthContextUtils.getWho());
                         if (result.getStatus() == ProvisioningReport.Status.FAILURE) {
                             sce.getElements().add(result.getMessage());
                         } else {
@@ -457,7 +457,8 @@ public class ReconciliationLogic extends AbstractTransactionalLogic<EntityTO> {
                     connectorManager.getConnector(provision.getResource()),
                     reconFilterBuilder,
                     moreAttrsToGet,
-                    pullTask));
+                    pullTask,
+                    AuthContextUtils.getWho()));
             if (!results.isEmpty() && results.get(0).getStatus() == ProvisioningReport.Status.FAILURE) {
                 sce.getElements().add(results.get(0).getMessage());
             }
@@ -638,7 +639,7 @@ public class ReconciliationLogic extends AbstractTransactionalLogic<EntityTO> {
                     connector,
                     spec.getPropagationActions(),
                     pushTask,
-                    AuthContextUtils.getUsername());
+                    AuthContextUtils.getWho());
         } catch (Exception e) {
             LOG.error("Could not push to stream", e);
             SyncopeClientException sce = SyncopeClientException.build(ClientExceptionType.Reconciliation);
diff --git a/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractJPAJSONAnyDAO.java b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractJPAJSONAnyDAO.java
index a5c9e9f860..827729c1dc 100644
--- a/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractJPAJSONAnyDAO.java
+++ b/core/persistence-jpa-json/src/main/java/org/apache/syncope/core/persistence/jpa/dao/AbstractJPAJSONAnyDAO.java
@@ -335,11 +335,11 @@ abstract class AbstractJPAJSONAnyDAO extends AbstractDAO<AbstractEntity> impleme
             }
         }
 
-        // update sysInfo - as org.apache.syncope.core.persistence.jpa.entity.PlainAttrListener is not invoked
+        // update sysInfo
         OffsetDateTime now = OffsetDateTime.now();
-        String username = AuthContextUtils.getUsername();
-        LOG.debug("Set last change date '{}' and modifier '{}' for '{}'", now, username, any);
-        any.setLastModifier(username);
+        String who = AuthContextUtils.getWho();
+        LOG.debug("Set last change date '{}' and modifier '{}' for '{}'", now, who, any);
+        any.setLastModifier(who);
         any.setLastChangeDate(now);
     }
 }
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/SyncopeSinglePullExecutor.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/SyncopeSinglePullExecutor.java
index bedefd4ee4..4de8e3b303 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/SyncopeSinglePullExecutor.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/pushpull/SyncopeSinglePullExecutor.java
@@ -34,5 +34,6 @@ public interface SyncopeSinglePullExecutor {
             Connector connector,
             ReconFilterBuilder reconFilterBuilder,
             Set<String> moreAttrsToGet,
-            PullTaskTO pullTaskTO) throws JobExecutionException;
+            PullTaskTO pullTaskTO,
+            String executor) throws JobExecutionException;
 }
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AbstractSchedTaskJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AbstractSchedTaskJobDelegate.java
index 41c7899b3e..7c6c25d24a 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AbstractSchedTaskJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/AbstractSchedTaskJobDelegate.java
@@ -32,7 +32,6 @@ import org.apache.syncope.core.persistence.api.entity.task.TaskExec;
 import org.apache.syncope.core.provisioning.api.AuditManager;
 import org.apache.syncope.core.provisioning.api.job.SchedTaskJobDelegate;
 import org.apache.syncope.core.provisioning.api.notification.NotificationManager;
-import org.apache.syncope.core.spring.security.AuthContextUtils;
 import org.apache.syncope.core.spring.security.SecurityProperties;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
@@ -148,7 +147,7 @@ public abstract class AbstractSchedTaskJobDelegate implements SchedTaskJobDelega
         status.set("Done");
 
         notificationManager.createTasks(
-                AuthContextUtils.getWho(),
+                executor,
                 AuditElements.EventCategoryType.TASK,
                 this.getClass().getSimpleName(),
                 null,
@@ -158,7 +157,7 @@ public abstract class AbstractSchedTaskJobDelegate implements SchedTaskJobDelega
                 execution);
 
         auditManager.audit(
-                AuthContextUtils.getWho(),
+                executor,
                 AuditElements.EventCategoryType.TASK,
                 task.getClass().getSimpleName(),
                 null,
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/DefaultJobManager.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/DefaultJobManager.java
index ab3c1ce97a..abbae849c8 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/DefaultJobManager.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/job/DefaultJobManager.java
@@ -254,7 +254,7 @@ public class DefaultJobManager implements JobManager, SyncopeCoreLoader {
                 jobMap);
     }
 
-    protected static Map<String, Object> createJobMapForExecutionContext(final String executor) {
+    protected Map<String, Object> createJobMapForExecutionContext(final String executor) {
         Map<String, Object> jobMap = new HashMap<>();
         jobMap.put(JobManager.DOMAIN_KEY, AuthContextUtils.getDomain());
         jobMap.put(JobManager.EXECUTOR_KEY, executor);
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
index f1d1218bda..76fc6e7564 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/propagation/PriorityPropagationTaskExecutor.java
@@ -71,7 +71,7 @@ public class PriorityPropagationTaskExecutor extends AbstractPropagationTaskExec
      * @return new {@link PropagationTaskCallable} instance for usage with
      * {@link java.util.concurrent.CompletionService}
      */
-    protected static PropagationTaskCallable newPropagationTaskCallable(
+    protected PropagationTaskCallable newPropagationTaskCallable(
             final PropagationTaskInfo taskInfo, final PropagationReporter reporter, final String executor) {
 
         PropagationTaskCallable callable = (PropagationTaskCallable) ApplicationContextProvider.getBeanFactory().
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
index 6d9f610cc1..81284f88d7 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
@@ -67,7 +67,6 @@ import org.apache.syncope.core.provisioning.api.cache.VirAttrCacheKey;
 import org.apache.syncope.core.provisioning.api.pushpull.SyncopePullExecutor;
 import org.apache.syncope.core.provisioning.api.pushpull.SyncopePullResultHandler;
 import org.apache.syncope.core.provisioning.java.utils.ConnObjectUtils;
-import org.apache.syncope.core.spring.security.AuthContextUtils;
 import org.identityconnectors.framework.common.objects.Attribute;
 import org.identityconnectors.framework.common.objects.SyncDelta;
 import org.identityconnectors.framework.common.objects.SyncDeltaType;
@@ -931,7 +930,7 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
         }
 
         notificationManager.createTasks(
-                AuthContextUtils.getWho(),
+                profile.getExecutor(),
                 AuditElements.EventCategoryType.PULL,
                 anyTypeKind.name().toLowerCase(),
                 profile.getTask().getResource().getKey(),
@@ -943,7 +942,7 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
                 furtherInput);
 
         auditManager.audit(
-                AuthContextUtils.getWho(),
+                profile.getExecutor(),
                 AuditElements.EventCategoryType.PULL,
                 anyTypeKind.name().toLowerCase(),
                 profile.getTask().getResource().getKey(),
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
index 4c6f99598e..215c797194 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
@@ -57,7 +57,6 @@ import org.apache.syncope.core.provisioning.api.WorkflowResult;
 import org.apache.syncope.core.provisioning.api.propagation.PropagationException;
 import org.apache.syncope.common.lib.to.ProvisioningReport;
 import org.apache.syncope.core.provisioning.api.pushpull.PullActions;
-import org.apache.syncope.core.spring.security.AuthContextUtils;
 import org.identityconnectors.framework.common.objects.SyncDelta;
 import org.apache.syncope.core.provisioning.api.pushpull.UserPullResultHandler;
 import org.identityconnectors.framework.common.objects.AttributeUtil;
@@ -270,7 +269,7 @@ public class DefaultUserPullResultHandler extends AbstractPullResultHandler impl
                         propByLinkedAccount,
                         null),
                         false,
-                        AuthContextUtils.getUsername());
+                        profile.getExecutor());
 
                 for (PullActions action : profile.getActions()) {
                     action.after(profile, delta, before, report);
diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/SinglePullJobDelegate.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/SinglePullJobDelegate.java
index 12086e606f..3e5adfefaf 100644
--- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/SinglePullJobDelegate.java
+++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/SinglePullJobDelegate.java
@@ -67,7 +67,8 @@ public class SinglePullJobDelegate extends PullJobDelegate implements SyncopeSin
             final Connector connector,
             final ReconFilterBuilder reconFilterBuilder,
             final Set<String> moreAttrsToGet,
-            final PullTaskTO pullTaskTO) throws JobExecutionException {
+            final PullTaskTO pullTaskTO,
+            final String executor) throws JobExecutionException {
 
         LOG.debug("Executing pull on {}", provision.getResource());
 
@@ -122,6 +123,7 @@ public class SinglePullJobDelegate extends PullJobDelegate implements SyncopeSin
             profile.setDryRun(false);
             profile.setConflictResolutionAction(ConflictResolutionAction.FIRSTMATCH);
             profile.getActions().addAll(actions);
+            profile.setExecutor(executor);
 
             for (PullActions action : actions) {
                 action.beforeAll(profile);
diff --git a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/AbstractWorkflowAdapter.java b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/AbstractWorkflowAdapter.java
index 9c2c60b198..3f87fb39bd 100644
--- a/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/AbstractWorkflowAdapter.java
+++ b/core/workflow-java/src/main/java/org/apache/syncope/core/workflow/java/AbstractWorkflowAdapter.java
@@ -19,15 +19,11 @@
 package org.apache.syncope.core.workflow.java;
 
 import java.time.OffsetDateTime;
-import org.apache.commons.lang3.StringUtils;
 import org.apache.syncope.core.persistence.api.entity.Any;
-import org.apache.syncope.core.spring.security.AuthContextUtils;
 
 public abstract class AbstractWorkflowAdapter {
 
-    protected void metadata(final Any<?> any, final String username, final String context) {
-        String who = username
-                + AuthContextUtils.getDelegatedBy().map(d -> " [delegated by " + d + "]").orElse(StringUtils.EMPTY);
+    protected void metadata(final Any<?> any, final String who, final String context) {
         OffsetDateTime now = OffsetDateTime.now();
 
         if (any.getCreationDate() == null) {
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
index 661fbe07d0..45e615508d 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/AbstractITCase.java
@@ -385,7 +385,7 @@ public abstract class AbstractITCase {
 
     @BeforeAll
     public static void securitySetup() {
-        try ( InputStream propStream = AbstractITCase.class.getResourceAsStream("/core.properties")) {
+        try (InputStream propStream = AbstractITCase.class.getResourceAsStream("/core.properties")) {
             Properties props = new Properties();
             props.load(propStream);
 
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
index c59a24df8a..1603e91ffd 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/enduser/AbstractEnduserITCase.java
@@ -144,7 +144,7 @@ public abstract class AbstractEnduserITCase extends AbstractUIITCase {
         ctx.register(SyncopeWebApplication.class);
 
         String springActiveProfiles = null;
-        try ( InputStream propStream = AbstractConsoleITCase.class.getResourceAsStream("/test.properties")) {
+        try (InputStream propStream = AbstractConsoleITCase.class.getResourceAsStream("/test.properties")) {
             Properties props = new Properties();
             props.load(propStream);
 
diff --git a/fit/wa-reference/src/test/java/org/apache/syncope/fit/sra/AbstractSRAITCase.java b/fit/wa-reference/src/test/java/org/apache/syncope/fit/sra/AbstractSRAITCase.java
index 072df29f4d..8701978bc0 100644
--- a/fit/wa-reference/src/test/java/org/apache/syncope/fit/sra/AbstractSRAITCase.java
+++ b/fit/wa-reference/src/test/java/org/apache/syncope/fit/sra/AbstractSRAITCase.java
@@ -145,7 +145,7 @@ public abstract class AbstractSRAITCase extends AbstractITCase {
             throws IOException, InterruptedException, TimeoutException {
 
         Properties props = new Properties();
-        try ( InputStream propStream = AbstractSRAITCase.class.getResourceAsStream("/test.properties")) {
+        try (InputStream propStream = AbstractSRAITCase.class.getResourceAsStream("/test.properties")) {
             props.load(propStream);
         } catch (Exception e) {
             fail("Could not load /test.properties", e);
@@ -190,7 +190,7 @@ public abstract class AbstractSRAITCase extends AbstractITCase {
 
         await().atMost(120, TimeUnit.SECONDS).pollInterval(3, TimeUnit.SECONDS).until(() -> {
             boolean connected = false;
-            try ( Socket socket = new Socket()) {
+            try (Socket socket = new Socket()) {
                 socket.connect(new InetSocketAddress("0.0.0.0", PORT));
                 connected = socket.isConnected();
             } catch (ConnectException e) {
diff --git a/sra/src/test/java/org/apache/syncope/sra/filters/BodyPropertyAddingGatewayFilterFactory.java b/sra/src/test/java/org/apache/syncope/sra/filters/BodyPropertyAddingGatewayFilterFactory.java
index b537b26a8a..695f018c3a 100644
--- a/sra/src/test/java/org/apache/syncope/sra/filters/BodyPropertyAddingGatewayFilterFactory.java
+++ b/sra/src/test/java/org/apache/syncope/sra/filters/BodyPropertyAddingGatewayFilterFactory.java
@@ -126,7 +126,7 @@ public class BodyPropertyAddingGatewayFilterFactory extends CustomGatewayFilterF
                         }
 
                         if (compressed) {
-                            try ( ByteArrayOutputStream baos = new ByteArrayOutputStream(output.length);  GZIPOutputStream gzipos =
+                            try (ByteArrayOutputStream baos = new ByteArrayOutputStream(output.length);  GZIPOutputStream gzipos =
                                     new GZIPOutputStream(baos)) {
 
                                 gzipos.write(output);