This is an automated email from the ASF dual-hosted git repository.
ilgrosso pushed a commit to branch 3_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git
The following commit(s) were added to refs/heads/3_0_X by this push:
new cdc666e566 [SYNCOPE-1896] Fixing ConnectorObject serialization for
Audit
cdc666e566 is described below
commit cdc666e5663b99d5193d168c6f43b0a1f3c7bec0
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Wed Jul 23 11:17:17 2025 +0200
[SYNCOPE-1896] Fixing ConnectorObject serialization for Audit
---
.../core/provisioning/java/DefaultAuditManager.java | 10 +++++++---
.../java/pushpull/AbstractPushResultHandler.java | 15 +++++++++++----
.../java/pushpull/DefaultRealmPushResultHandler.java | 7 ++++---
3 files changed, 22 insertions(+), 10 deletions(-)
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAuditManager.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAuditManager.java
index 9aa36c3d45..e42b276c9a 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAuditManager.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultAuditManager.java
@@ -149,16 +149,20 @@ public class DefaultAuditManager implements AuditManager {
auditEntry.setWho(who);
auditEntry.setLogger(auditLoggerName);
auditEntry.setDate(OffsetDateTime.now());
-
auditEntry.setBefore(POJOHelper.serialize((maskSensitive(before))));
+ auditEntry.setBefore(before instanceof String
+ ? (String) before
+ : POJOHelper.serialize((maskSensitive(before))));
if (throwable == null) {
-
auditEntry.setOutput(POJOHelper.serialize((maskSensitive(output))));
+ auditEntry.setOutput(output instanceof String
+ ? (String) output
+ : POJOHelper.serialize((maskSensitive(output))));
} else {
auditEntry.setOutput(throwable.getMessage());
auditEntry.setThrowable(ExceptionUtils2.getFullStackTrace(throwable));
}
if (input != null) {
auditEntry.getInputs().addAll(Arrays.stream(input).
-
map(DefaultAuditManager::maskSensitive).map(POJOHelper::serialize).
+ map(item -> item instanceof String ? (String) item :
POJOHelper.serialize(maskSensitive(item))).
collect(Collectors.toList()));
}
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
index 7b64944f7b..b0636ddb8f 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPushResultHandler.java
@@ -42,6 +42,8 @@ import org.apache.syncope.common.lib.types.ResourceOperation;
import org.apache.syncope.common.lib.types.UnmatchingRule;
import org.apache.syncope.core.persistence.api.entity.Any;
import org.apache.syncope.core.persistence.api.entity.ExternalResource;
+import org.apache.syncope.core.persistence.api.entity.anyobject.AnyObject;
+import org.apache.syncope.core.persistence.api.entity.group.Group;
import org.apache.syncope.core.persistence.api.entity.task.PushTask;
import org.apache.syncope.core.persistence.api.entity.user.User;
import org.apache.syncope.core.provisioning.api.AuditManager;
@@ -54,6 +56,7 @@ import
org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo;
import
org.apache.syncope.core.provisioning.api.pushpull.IgnoreProvisionException;
import org.apache.syncope.core.provisioning.api.pushpull.PushActions;
import
org.apache.syncope.core.provisioning.api.pushpull.SyncopePushResultHandler;
+import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
import org.apache.syncope.core.provisioning.java.job.AfterHandlingJob;
import
org.apache.syncope.core.provisioning.java.propagation.DefaultPropagationReporter;
import org.apache.syncope.core.spring.security.AuthContextUtils;
@@ -95,7 +98,7 @@ public abstract class AbstractPushResultHandler extends
AbstractSyncopeResultHan
final Boolean enable,
final ConnectorObject beforeObj,
final ProvisioningReport result) {
-
+
List<String> ownedResources =
getAnyUtils().getAllResources(any).stream().
map(ExternalResource::getKey).collect(Collectors.toList());
@@ -493,9 +496,13 @@ public abstract class AbstractPushResultHandler extends
AbstractSyncopeResultHan
profile.getTask().getResource().getKey(),
operation,
resultStatus,
- beforeObj,
- output,
- any));
+ beforeObj == null ? null :
POJOHelper.serialize(beforeObj),
+ output == null ? null : output instanceof
Exception ? output : POJOHelper.serialize(output),
+ any instanceof User
+ ? userDataBinder.getUserTO((User) any,
true)
+ : any instanceof Group
+ ?
groupDataBinder.getGroupTO((Group) any, true)
+ :
anyObjectDataBinder.getAnyObjectTO((AnyObject) any, true)));
AfterHandlingJob.schedule(scheduler, jobMap);
}
}
diff --git
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPushResultHandler.java
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPushResultHandler.java
index 17050efa84..db09f37400 100644
---
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPushResultHandler.java
+++
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultRealmPushResultHandler.java
@@ -49,6 +49,7 @@ import
org.apache.syncope.core.provisioning.api.propagation.PropagationTaskInfo;
import
org.apache.syncope.core.provisioning.api.pushpull.IgnoreProvisionException;
import org.apache.syncope.core.provisioning.api.pushpull.PushActions;
import
org.apache.syncope.core.provisioning.api.pushpull.RealmPushResultHandler;
+import org.apache.syncope.core.provisioning.api.serialization.POJOHelper;
import org.apache.syncope.core.provisioning.java.job.AfterHandlingJob;
import
org.apache.syncope.core.provisioning.java.propagation.DefaultPropagationReporter;
import org.apache.syncope.core.provisioning.java.utils.MappingUtils;
@@ -441,9 +442,9 @@ public class DefaultRealmPushResultHandler
profile.getTask().getResource().getKey(),
operation,
resultStatus,
- beforeObj,
- output,
- realm));
+ beforeObj == null ? null :
POJOHelper.serialize(beforeObj),
+ output == null ? null : output instanceof
Exception ? output : POJOHelper.serialize(output),
+ binder.getRealmTO(realm, true)));
AfterHandlingJob.schedule(scheduler, jobMap);
}
}