public JsonNode process()

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);
        }
    }