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 9586721892 [SYNCOPE-1822] Prevent NPE
9586721892 is described below
commit 9586721892f761b2a7b5a73287f16d073a4ab5de
Author: Francesco Chicchiriccò <[email protected]>
AuthorDate: Mon Jul 8 09:18:39 2024 +0200
[SYNCOPE-1822] Prevent NPE
---
.../java/org/apache/syncope/core/logic/SCIMDataBinder.java | 12 +++++++++---
.../syncope/ext/scimv2/api/data/SCIMExtensionInfo.java | 6 ++++++
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git
a/ext/scimv2/logic/src/main/java/org/apache/syncope/core/logic/SCIMDataBinder.java
b/ext/scimv2/logic/src/main/java/org/apache/syncope/core/logic/SCIMDataBinder.java
index 354a7ecbfc..5ec9bce174 100644
---
a/ext/scimv2/logic/src/main/java/org/apache/syncope/core/logic/SCIMDataBinder.java
+++
b/ext/scimv2/logic/src/main/java/org/apache/syncope/core/logic/SCIMDataBinder.java
@@ -446,9 +446,15 @@ public class SCIMDataBinder {
if (conf.getExtensionUserConf() != null) {
SCIMExtensionInfo extensionInfo = new SCIMExtensionInfo();
- conf.getExtensionUserConf().asMap().forEach((scimAttr,
syncopeAttr) -> extensionInfo.getAttributes().put(
- scimAttr, attrs.get(syncopeAttr).getValues().get(0)));
- user.setExtensionInfo(extensionInfo);
+ conf.getExtensionUserConf().asMap().forEach((scimAttr,
syncopeAttr) -> {
+ if (output(attributes, excludedAttributes, scimAttr) &&
attrs.containsKey(syncopeAttr)) {
+ extensionInfo.getAttributes().put(scimAttr,
attrs.get(syncopeAttr).getValues().get(0));
+ }
+ });
+
+ if (!extensionInfo.isEmpty()) {
+ user.setExtensionInfo(extensionInfo);
+ }
}
if (output(attributes, excludedAttributes, "groups")) {
diff --git
a/ext/scimv2/scim-rest-api/src/main/java/org/apache/syncope/ext/scimv2/api/data/SCIMExtensionInfo.java
b/ext/scimv2/scim-rest-api/src/main/java/org/apache/syncope/ext/scimv2/api/data/SCIMExtensionInfo.java
index a23ee4ef58..367f722ccd 100644
---
a/ext/scimv2/scim-rest-api/src/main/java/org/apache/syncope/ext/scimv2/api/data/SCIMExtensionInfo.java
+++
b/ext/scimv2/scim-rest-api/src/main/java/org/apache/syncope/ext/scimv2/api/data/SCIMExtensionInfo.java
@@ -18,6 +18,7 @@
*/
package org.apache.syncope.ext.scimv2.api.data;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.HashMap;
import java.util.Map;
@@ -30,4 +31,9 @@ public class SCIMExtensionInfo extends SCIMBean {
public Map<String, String> getAttributes() {
return attributes;
}
+
+ @JsonIgnore
+ public boolean isEmpty() {
+ return attributes.isEmpty();
+ }
}