From 972c7e76733cacea050a727550ab57d38624c2c4 Mon Sep 17 00:00:00 2001 From: James Date: Tue, 1 Jan 2019 21:17:38 +0800 Subject: [PATCH] enjoy 3.6 --- pom.xml | 2 +- .../com/jfinal/template/expr/ast/MethodKit.java | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 06ef63e..f46d4c3 100644 --- a/pom.xml +++ b/pom.xml @@ -121,7 +121,7 @@ - false + true diff --git a/src/main/java/com/jfinal/template/expr/ast/MethodKit.java b/src/main/java/com/jfinal/template/expr/ast/MethodKit.java index 2739e22..708feb5 100644 --- a/src/main/java/com/jfinal/template/expr/ast/MethodKit.java +++ b/src/main/java/com/jfinal/template/expr/ast/MethodKit.java @@ -48,7 +48,8 @@ public class MethodKit { Class[] cs = { System.class, Runtime.class, Thread.class, Class.class, ClassLoader.class, File.class, Compiler.class, InheritableThreadLocal.class, Package.class, Process.class, - RuntimePermission.class, SecurityManager.class, ThreadGroup.class, ThreadLocal.class + RuntimePermission.class, SecurityManager.class, ThreadGroup.class, ThreadLocal.class, + java.lang.reflect.Method.class }; for (Class c : cs) { forbiddenClasses.add(c); @@ -59,7 +60,7 @@ public class MethodKit { static { String[] ms = { "getClass", "getDeclaringClass", "forName", "newInstance", "getClassLoader", - "getMethod", "getMethods", "getField", "getFields", + "invoke", // "getMethod", "getMethods", // "getField", "getFields", "notify", "notifyAll", "wait", "load", "exit", "loadLibrary", "halt", "stop", "suspend", "resume", "setDaemon", "setPriority", @@ -98,6 +99,10 @@ public class MethodKit { forbiddenClasses.add(clazz); } + public static void removeForbiddenClass(Class clazz) { + forbiddenClasses.remove(clazz); + } + public static boolean isForbiddenMethod(String methodName) { return forbiddenMethods.contains(methodName); } @@ -106,6 +111,10 @@ public class MethodKit { forbiddenMethods.add(methodName); } + public static void removeForbiddenMethod(String methodName) { + forbiddenMethods.remove(methodName); + } + public static MethodInfo getMethod(Class targetClass, String methodName, Object[] argValues) { Class[] argTypes = getArgTypes(argValues); Long key = getMethodKey(targetClass, methodName, argTypes);