in library/camel-kamelets-utils/src/main/java/org/apache/camel/kamelets/utils/transform/MaskField.java [68:89]
public JsonNode process(@ExchangeProperty("fields") String fields, @ExchangeProperty("replacement") String replacement, Exchange ex) throws InvalidPayloadException {
ObjectMapper mapper = new ObjectMapper();
List<String> splittedFields = new ArrayList<>();
JsonNode jsonNodeBody = ex.getMessage().getBody(JsonNode.class);
Map<Object, Object> body = mapper.convertValue(jsonNodeBody, new TypeReference<Map<Object, Object>>(){});
if (ObjectHelper.isNotEmpty(fields)) {
splittedFields = Arrays.stream(fields.split(",")).collect(Collectors.toList());
}
Map<Object, Object> updatedBody = new HashMap<>();
for (Map.Entry entry:
body.entrySet()) {
final String fieldName = (String) entry.getKey();
final Object origFieldValue = entry.getValue();
updatedBody.put(fieldName, filterNames(fieldName, splittedFields) ? masked(origFieldValue, replacement) : origFieldValue);
}
if (!updatedBody.isEmpty()) {
return mapper.valueToTree(updatedBody);
} else {
return mapper.valueToTree(body);
}
}