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 2019/10/09 13:49:57 UTC

[syncope] 02/02: [SYNCOPE-1465] White noise

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

commit 52062c462fffa5a440bc75952d9ec832f44914f0
Author: Francesco Chicchiriccò <il...@apache.org>
AuthorDate: Wed Oct 9 15:49:44 2019 +0200

    [SYNCOPE-1465] White noise
---
 .../org/apache/syncope/core/logic/GroupLogic.java     |  7 +++----
 .../org/apache/syncope/core/logic/RealmLogic.java     | 12 ++++++------
 .../org/apache/syncope/core/logic/ReportLogic.java    | 19 +++++++------------
 .../java/org/apache/syncope/core/logic/TaskLogic.java |  6 ++----
 .../java/pushpull/DefaultUserPullResultHandler.java   |  3 +--
 .../apache/syncope/core/logic/UserRequestLogic.java   |  3 +--
 .../syncope/core/logic/UserWorkflowTaskLogic.java     |  3 +--
 .../org/apache/syncope/fit/core/ReportITCase.java     | 19 +++----------------
 .../apache/syncope/fit/core/ReportTemplateITCase.java | 18 ++----------------
 9 files changed, 26 insertions(+), 64 deletions(-)

diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
index a3875fc..f563347 100644
--- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
+++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/GroupLogic.java
@@ -161,11 +161,11 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupCR, GroupUR> {
 
         int count = searchDAO.count(
                 RealmUtils.getEffective(SyncopeConstants.FULL_ADMIN_REALMS, realm),
-            Optional.ofNullable(searchCond).orElseGet(() -> groupDAO.getAllMatchingCond()), AnyTypeKind.GROUP);
+                Optional.ofNullable(searchCond).orElseGet(() -> groupDAO.getAllMatchingCond()), AnyTypeKind.GROUP);
 
         List<Group> matching = searchDAO.search(
                 RealmUtils.getEffective(SyncopeConstants.FULL_ADMIN_REALMS, realm),
-            Optional.ofNullable(searchCond).orElseGet(() -> groupDAO.getAllMatchingCond()),
+                Optional.ofNullable(searchCond).orElseGet(() -> groupDAO.getAllMatchingCond()),
                 page, size, orderBy, AnyTypeKind.GROUP);
         List<GroupTO> result = matching.stream().
                 map(group -> binder.getGroupTO(group, details)).collect(Collectors.toList());
@@ -410,12 +410,11 @@ public class GroupLogic extends AbstractAnyLogic<GroupTO, GroupCR, GroupUR> {
         task = taskDAO.save(task);
 
         try {
-            String executor = AuthContextUtils.getUsername();
             Map<String, Object> jobDataMap = jobManager.register(
                     task,
                     null,
                     confParamOps.get(AuthContextUtils.getDomain(), "tasks.interruptMaxRetries", 1L, Long.class),
-                    executor);
+                    AuthContextUtils.getUsername());
 
             jobDataMap.put(TaskJob.DRY_RUN_JOBDETAIL_KEY, false);
             jobDataMap.put(GroupMemberProvisionTaskJobDelegate.GROUP_KEY_JOBDETAIL_KEY, key);
diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
index b3d5585..580ac15 100644
--- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
+++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/RealmLogic.java
@@ -117,11 +117,11 @@ public class RealmLogic extends AbstractTransactionalLogic<RealmTO> {
         }
 
         Realm realm = realmDAO.save(binder.create(parent, realmTO));
-        String executor = AuthContextUtils.getUsername();
         PropagationByResource<String> propByRes = new PropagationByResource<>();
         propByRes.addAll(ResourceOperation.CREATE, realm.getResourceKeys());
         List<PropagationTaskInfo> taskInfos = propagationManager.createTasks(realm, propByRes, null);
-        PropagationReporter propagationReporter = taskExecutor.execute(taskInfos, false, executor);
+        PropagationReporter propagationReporter =
+                taskExecutor.execute(taskInfos, false, AuthContextUtils.getUsername());
 
         ProvisioningResult<RealmTO> result = new ProvisioningResult<>();
         result.setEntity(binder.getRealmTO(realm, true));
@@ -138,12 +138,12 @@ public class RealmLogic extends AbstractTransactionalLogic<RealmTO> {
 
             throw new NotFoundException(realmTO.getFullPath());
         }
-        String executor = AuthContextUtils.getUsername();
         PropagationByResource<String> propByRes = binder.update(realm, realmTO);
         realm = realmDAO.save(realm);
 
         List<PropagationTaskInfo> taskInfos = propagationManager.createTasks(realm, propByRes, null);
-        PropagationReporter propagationReporter = taskExecutor.execute(taskInfos, false, executor);
+        PropagationReporter propagationReporter =
+                taskExecutor.execute(taskInfos, false, AuthContextUtils.getUsername());
 
         ProvisioningResult<RealmTO> result = new ProvisioningResult<>();
         result.setEntity(binder.getRealmTO(realm, true));
@@ -180,11 +180,11 @@ public class RealmLogic extends AbstractTransactionalLogic<RealmTO> {
             containedAnys.getElements().add(anyObjects + " anyObject(s)");
             throw containedAnys;
         }
-        String executor = AuthContextUtils.getUsername();
         PropagationByResource<String> propByRes = new PropagationByResource<>();
         propByRes.addAll(ResourceOperation.DELETE, realm.getResourceKeys());
         List<PropagationTaskInfo> taskInfos = propagationManager.createTasks(realm, propByRes, null);
-        PropagationReporter propagationReporter = taskExecutor.execute(taskInfos, false, executor);
+        PropagationReporter propagationReporter =
+                taskExecutor.execute(taskInfos, false, AuthContextUtils.getUsername());
 
         ProvisioningResult<RealmTO> result = new ProvisioningResult<>();
         result.setEntity(binder.getRealmTO(realm, true));
diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
index e471af2..bf5b987 100644
--- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
+++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/ReportLogic.java
@@ -75,7 +75,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.Assert;
 
 @Component
 public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
@@ -100,14 +99,12 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
         Report report = entityFactory.newEntity(Report.class);
         binder.getReport(report, reportTO);
         report = reportDAO.save(report);
-        String executor = AuthContextUtils.getUsername();
-        Assert.notNull(executor, "executor cannot be null when creating report");
         try {
             jobManager.register(
                     report,
                     null,
                     confParamOps.get(AuthContextUtils.getDomain(), "tasks.interruptMaxRetries", 1L, Long.class),
-                    executor);
+                    AuthContextUtils.getUsername());
         } catch (Exception e) {
             LOG.error("While registering quartz job for report " + report.getKey(), e);
 
@@ -128,13 +125,12 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
 
         binder.getReport(report, reportTO);
         report = reportDAO.save(report);
-        String executor = AuthContextUtils.getUsername();
         try {
             jobManager.register(
                     report,
                     null,
                     confParamOps.get(AuthContextUtils.getDomain(), "tasks.interruptMaxRetries", 1L, Long.class),
-                    executor);
+                    AuthContextUtils.getUsername());
         } catch (Exception e) {
             LOG.error("While registering quartz job for report " + report.getKey(), e);
 
@@ -175,14 +171,13 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
             sce.getElements().add("Report " + key + " is not active");
             throw sce;
         }
-        String executor = AuthContextUtils.getUsername();
-        Assert.notNull(executor, "executor cannot be null when executing report");
+
         try {
             jobManager.register(
                     report,
                     startAt,
                     confParamOps.get(AuthContextUtils.getDomain(), "tasks.interruptMaxRetries", 1L, Long.class),
-                    executor);
+                    AuthContextUtils.getUsername());
 
             scheduler.getScheduler().triggerJob(JobNamer.getJobKey(report));
         } catch (Exception e) {
@@ -200,7 +195,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
         result.setStart(new Date());
         result.setStatus(ReportExecStatus.STARTED.name());
         result.setMessage("Job fired; waiting for results...");
-        result.setExecutor(executor);
+        result.setExecutor(AuthContextUtils.getUsername());
         return result;
     }
 
@@ -222,7 +217,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
 
     @PreAuthorize("hasRole('" + IdRepoEntitlement.REPORT_READ + "')")
     public static void exportExecutionResult(final OutputStream os, final ReportExec reportExec,
-                                             final ReportExecExportFormat format) {
+            final ReportExecExportFormat format) {
 
         // streaming SAX handler from a compressed byte array stream
         try (ByteArrayInputStream bais = new ByteArrayInputStream(reportExec.getExecResult());
@@ -379,7 +374,7 @@ public class ReportLogic extends AbstractExecutableLogic<ReportTO> {
 
         Report report = reportDAO.find(key);
         return Optional.ofNullable(report)
-            .map(report1 -> Triple.of(JobType.REPORT, key, binder.buildRefDesc(report1))).orElse(null);
+                .map(report1 -> Triple.of(JobType.REPORT, key, binder.buildRefDesc(report1))).orElse(null);
     }
 
     @PreAuthorize("hasRole('" + IdRepoEntitlement.REPORT_LIST + "')")
diff --git a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
index 96fba5d..7dec93d 100644
--- a/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
+++ b/core/idrepo/logic/src/main/java/org/apache/syncope/core/logic/TaskLogic.java
@@ -110,7 +110,6 @@ public class TaskLogic extends AbstractExecutableLogic<TaskTO> {
             sce.getElements().add("Found " + type + ", expected " + taskUtils.getType());
             throw sce;
         }
-        String executor = AuthContextUtils.getUsername();
         SchedTask task = binder.createSchedTask(taskTO, taskUtils);
         task = taskDAO.save(task);
 
@@ -119,7 +118,7 @@ public class TaskLogic extends AbstractExecutableLogic<TaskTO> {
                     task,
                     task.getStartAt(),
                     confParamOps.get(AuthContextUtils.getDomain(), "tasks.interruptMaxRetries", 1L, Long.class),
-                    executor);
+                    AuthContextUtils.getUsername());
         } catch (Exception e) {
             LOG.error("While registering quartz job for task " + task.getKey(), e);
 
@@ -147,13 +146,12 @@ public class TaskLogic extends AbstractExecutableLogic<TaskTO> {
 
         binder.updateSchedTask(task, taskTO, taskUtils);
         task = taskDAO.save(task);
-        String executor = AuthContextUtils.getUsername();
         try {
             jobManager.register(
                     task,
                     task.getStartAt(),
                     confParamOps.get(AuthContextUtils.getDomain(), "tasks.interruptMaxRetries", 1L, Long.class),
-                    executor);
+                    AuthContextUtils.getUsername());
         } catch (Exception e) {
             LOG.error("While registering quartz job for task " + task.getKey(), e);
 
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 a344a3f..20ec326 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
@@ -253,7 +253,6 @@ public class DefaultUserPullResultHandler extends AbstractPullResultHandler impl
                 propByLinkedAccount.add(
                         ResourceOperation.DELETE,
                         Pair.of(account.getResource().getKey(), account.getConnObjectKeyValue()));
-                String executor = AuthContextUtils.getUsername();
                 taskExecutor.execute(propagationManager.getDeleteTasks(
                         AnyTypeKind.USER,
                         account.getOwner().getKey(),
@@ -261,7 +260,7 @@ public class DefaultUserPullResultHandler extends AbstractPullResultHandler impl
                         propByLinkedAccount,
                         null),
                         false,
-                        executor);
+                        AuthContextUtils.getUsername());
 
                 for (PullActions action : profile.getActions()) {
                     action.after(profile, delta, before, report);
diff --git a/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserRequestLogic.java b/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserRequestLogic.java
index 2df4c59..a0b4a3a 100644
--- a/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserRequestLogic.java
+++ b/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserRequestLogic.java
@@ -184,7 +184,6 @@ public class UserRequestLogic extends AbstractTransactionalLogic<EntityTO> {
         }
 
         UserWorkflowResult<UserUR> wfResult = userRequestHandler.submitForm(form);
-        String executor = AuthContextUtils.getUsername();
         // propByRes can be made empty by the workflow definition if no propagation should occur 
         // (for example, with rejected users)
         if (wfResult.getPropByRes() != null && !wfResult.getPropByRes().isEmpty()) {
@@ -195,7 +194,7 @@ public class UserRequestLogic extends AbstractTransactionalLogic<EntityTO> {
                             wfResult.getPropByLinkedAccount(),
                             wfResult.getPerformedTasks()));
 
-            taskExecutor.execute(taskInfos, false, executor);
+            taskExecutor.execute(taskInfos, false, AuthContextUtils.getUsername());
         }
 
         UserTO userTO;
diff --git a/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowTaskLogic.java b/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowTaskLogic.java
index 0de8c70..343d21d 100644
--- a/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowTaskLogic.java
+++ b/ext/flowable/logic/src/main/java/org/apache/syncope/core/logic/UserWorkflowTaskLogic.java
@@ -80,8 +80,7 @@ public class UserWorkflowTaskLogic extends AbstractTransactionalLogic<EntityTO>
                         updated.getPropByRes(),
                         updated.getPropByLinkedAccount(),
                         updated.getPerformedTasks()));
-        String executor = AuthContextUtils.getUsername();
-        taskExecutor.execute(taskInfos, false, executor);
+        taskExecutor.execute(taskInfos, false, AuthContextUtils.getUsername());
 
         return binder.getUserTO(updated.getResult());
     }
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
index d458347..f0cc43d 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportITCase.java
@@ -54,25 +54,12 @@ import org.apache.syncope.common.rest.api.batch.BatchResponseItem;
 import org.apache.syncope.common.rest.api.beans.ExecDeleteQuery;
 import org.apache.syncope.common.rest.api.beans.ExecuteQuery;
 import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
-import org.apache.syncope.core.spring.security.SyncopeAuthenticationDetails;
 import org.apache.syncope.fit.AbstractITCase;
 import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
 
 public class ReportITCase extends AbstractITCase {
 
-    @BeforeAll
-    public static void setup() {
-        UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
-            new User("admin", "FAKE_PASSWORD", List.of()), "FAKE_PASSWORD", List.of());
-        auth.setDetails(new SyncopeAuthenticationDetails("Master"));
-        SecurityContextHolder.getContext().setAuthentication(auth);
-    }
-    
     protected static String execReport(final String reportKey) {
         ReportTO reportTO = reportService.read(reportKey);
         assertNotNull(reportTO);
@@ -83,7 +70,7 @@ public class ReportITCase extends AbstractITCase {
         ExecTO exec = reportService.execute(query);
         assertNotNull(exec);
         assertNotNull(exec.getExecutor());
-        
+
         int i = 0;
         int maxit = 50;
 
@@ -98,7 +85,7 @@ public class ReportITCase extends AbstractITCase {
 
             assertNotNull(reportTO);
             assertNotNull(reportTO.getExecutions());
-            
+
             i++;
         } while (preExecSize == reportTO.getExecutions().size() && i < maxit);
         if (i == maxit) {
@@ -370,7 +357,7 @@ public class ReportITCase extends AbstractITCase {
         reportTO.setTemplate("sample");
         reportTO = createReport(reportTO);
         assertNotNull(reportTO);
-        
+
         ExecTO execution = reportService.execute(new ExecuteQuery.Builder().key(reportTO.getKey()).build());
         assertNotNull(execution);
 
diff --git a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportTemplateITCase.java b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportTemplateITCase.java
index 535b84f..773c2d6 100644
--- a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportTemplateITCase.java
+++ b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ReportTemplateITCase.java
@@ -36,23 +36,11 @@ import org.apache.syncope.common.lib.to.ReportTemplateTO;
 import org.apache.syncope.common.lib.types.ClientExceptionType;
 import org.apache.syncope.common.lib.types.ReportExecExportFormat;
 import org.apache.syncope.common.lib.types.ReportTemplateFormat;
-import org.apache.syncope.core.spring.security.SyncopeAuthenticationDetails;
 import org.apache.syncope.fit.AbstractITCase;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.User;
 
 public class ReportTemplateITCase extends AbstractITCase {
-    @BeforeAll
-    public static void setup() {
-        UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(
-            new User("admin", "FAKE_PASSWORD", List.of()), "FAKE_PASSWORD", List.of());
-        auth.setDetails(new SyncopeAuthenticationDetails("Master"));
-        SecurityContextHolder.getContext().setAuthentication(auth);
-    }
-    
+
     @Test
     public void read() {
         ReportTemplateTO reportTemplateTO = reportTemplateService.read("sample");
@@ -64,9 +52,7 @@ public class ReportTemplateITCase extends AbstractITCase {
         List<ReportTemplateTO> reportTemplateTOs = reportTemplateService.list();
         assertNotNull(reportTemplateTOs);
         assertFalse(reportTemplateTOs.isEmpty());
-        for (ReportTemplateTO instance : reportTemplateTOs) {
-            assertNotNull(instance);
-        }
+        reportTemplateTOs.forEach(instance -> assertNotNull(instance));
     }
 
     @Test