Skip to content
Snippets Groups Projects
Commit 06a7f6fd authored by Dominik František Bučík's avatar Dominik František Bučík
Browse files

chore: merge branch 'dBucik/replace_modifier_remove_duplicates' into 'main'

fix: :bug: claim modifiers in arrays retain only unique values

See merge request !397
parents e4ab4473 5d2750d5
No related branches found
No related tags found
1 merge request!397fix: 🐛 claim modifiers in arrays retain only unique values
Pipeline #444679 passed
......@@ -303,18 +303,22 @@ public class PerunUserInfoCacheLoader extends CacheLoader<UserInfoCacheKey, User
return TextNode.valueOf(modifier.modify(claimInJson.asText()));
} else if (claimInJson.isArray()) {
ArrayNode arrayNode = (ArrayNode) claimInJson;
ArrayNode newArrayNode = JsonNodeFactory.instance.arrayNode();
Set<TextNode> uniqueValues = new HashSet<>();
for (int i = 0; i < arrayNode.size(); i++) {
JsonNode item = arrayNode.get(i);
if (item.isTextual()) {
String original = item.asText();
String modified = modifier.modify(original);
if (!modifier.isReplaceOldValue()) {
newArrayNode.add(TextNode.valueOf(original));
uniqueValues.add(TextNode.valueOf(original));
}
newArrayNode.add(TextNode.valueOf(modified));
uniqueValues.add(TextNode.valueOf(modified));
}
}
ArrayNode newArrayNode = JsonNodeFactory.instance.arrayNode();
for (TextNode child : uniqueValues) {
newArrayNode.add(child);
}
return newArrayNode;
} else {
log.warn("Original value is neither string nor array of strings - cannot modify values");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment