package com.novitechie.rules; import com.janetfilter.core.commons.DebugInfo; import java.util.ArrayList; import java.util.List; /** * @author YeloChick */ public class SystemRule { private static final List PREVENT_LOAD_ENV = new ArrayList() { { add("_VM_OPTIONS"); add("JANF_DEBUG"); add("JANF_OUTPUT"); } }; private static final List PREVENT_LOAD_PROPERTY = new ArrayList() { { add("janf.debug"); add("janf.output"); } }; public static boolean checkEnv(String name) { boolean f = PREVENT_LOAD_ENV.stream().anyMatch(name::startsWith) || PREVENT_LOAD_ENV.stream().anyMatch(name::endsWith); if (f) { DebugInfo.output("======================LoadEnv: " + name); StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); DebugInfo.output("===========================stackTrace: "); for (StackTraceElement stackTraceElement : stackTrace) { DebugInfo.output(stackTraceElement.getClassName() + ":" + stackTraceElement.getMethodName()); } return true; } return false; } public static boolean checkProperty(String name) { boolean f = PREVENT_LOAD_PROPERTY.stream().anyMatch(name::equals); if (f) { DebugInfo.output("======================LoadProperty: " + name); StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); DebugInfo.output("===========================stackTrace: "); for (StackTraceElement stackTraceElement : stackTrace) { DebugInfo.output(stackTraceElement.getClassName() + ":" + stackTraceElement.getMethodName()); } return true; } return false; } }