1. import java.io.*;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. import java.util.regex.Matcher;
  5. import java.util.regex.Pattern;
  6. public class LogSanitizer {
  7. private final Map<String, String> sanitizationRules;
  8. public LogSanitizer(String configFilePath) throws IOException {
  9. // Load sanitization rules from the configuration file
  10. sanitizationRules = loadSanitizationRules(configFilePath);
  11. }
  12. private Map<String, String> loadSanitizationRules(String configFilePath) throws IOException {
  13. Map<String, String> rules = new HashMap<>();
  14. try (BufferedReader reader = new BufferedReader(new FileReader(configFilePath))) {
  15. String line;
  16. while ((line = reader.readLine()) != null) {
  17. String[] parts = line.split("=");
  18. if (parts.length == 2) {
  19. rules.put(parts[0].trim(), parts[1].trim());
  20. }
  21. }
  22. }
  23. return rules;
  24. }
  25. public String sanitizeLine(String line) {
  26. String sanitizedLine = line;
  27. for (Map.Entry<String, String> rule : sanitizationRules.entrySet()) {
  28. String pattern = rule.getValue();
  29. Pattern p = Pattern.compile(pattern);
  30. Matcher m = p.matcher(sanitizedLine);
  31. sanitizedLine = m.replaceAll(rule.getKey());
  32. }
  33. return sanitizedLine;
  34. }
  35. public static void main(String[] args) throws IOException {
  36. //Example usage. Replace with your actual config file path
  37. String configFilePath = "sanitization_rules.config";
  38. LogSanitizer sanitizer = new LogSanitizer(configFilePath);
  39. String logLine = "This is a log line with sensitive data: username=john.doe, password=secret123";
  40. String sanitizedLogLine = sanitizer.sanitizeLine(logLine);
  41. System.out.println("Original log line: " + logLine);
  42. System.out.println("Sanitized log line: " + sanitizedLogLine);
  43. logLine = "Email: test@example.com Phone: 555-123-4567";
  44. sanitizedLogLine = sanitizer.sanitizeLine(logLine);
  45. System.out.println("Original log line: " + logLine);
  46. System.out.println("Sanitized log line: " + sanitizedLogLine);
  47. }
  48. }

Add your comment