public String processContentWithTokens()

in src/main/java/co/elastic/support/scrub/ScrubProcessor.java [215:266]


    public String processContentWithTokens(String content, String entry) {
        for (ScrubTokenEntry token : tokens) {
            if (!token.include.isEmpty()) {
                boolean filtered = true;
                for (String inc : token.include) {
                    if (entry.matches(inc)) {
                        logger.info(Constants.CONSOLE, "Include rule applied for: {}.", entry);
                        filtered = false;
                        break;
                    }
                }
                if (filtered) {
                    continue;
                }
            }

            if (!token.exclude.isEmpty()) {
                boolean filtered = false;
                for (String exc : token.exclude) {
                    if (entry.matches(exc)) {
                        logger.info(Constants.CONSOLE, "Exclude rule applied for: {}.", entry);
                        filtered = true;
                        break;
                    }
                }
                if (filtered) {
                    continue;
                }
            }
            Matcher matcher = token.pattern.matcher(content);
            Set<String> tokenHits = new HashSet<>();
            while(matcher.find()){
                tokenHits.add(matcher.group());
            }
            for(String hit: tokenHits){
                String replacement = tokenCache.computeIfAbsent(hit, k -> generateToken(k));
                logger.debug("Entry: {} - Pattern:{}  Found:{}   Replacement: {}", entry, token.pattern.toString(), hit, replacement);
                content = content.replaceAll(hit, replacement );
            }

/*            while (matcher.find()) {
                String group = matcher.group();
                String replacement = tokenCache.computeIfAbsent(group, k -> generateToken(k));
                logger.debug("Entry: {} - Pattern:{}  Found:{}   Replacement: {}", entry, token.pattern.toString(), group, replacement);
                content = content.replaceFirst(group, replacement);
            }*/



        }
        return content;
    }