From a973c193cd6a2d2e4607eec18f671926fad50bb8 Mon Sep 17 00:00:00 2001 From: Yasser Zamani Date: Fri, 13 Sep 2019 14:49:44 +0430 Subject: [PATCH] not fail on getDeclaredXXX when user has used a SecurityManager (#79) not fail on getDeclaredXXX when user has used a SecurityManager (cherry picked from commit 32d076d) --- src/main/java/ognl/OgnlRuntime.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/ognl/OgnlRuntime.java b/src/main/java/ognl/OgnlRuntime.java index f30357fa..624bf0b8 100644 --- a/src/main/java/ognl/OgnlRuntime.java +++ b/src/main/java/ognl/OgnlRuntime.java @@ -2177,7 +2177,12 @@ public static Map getMethods(Class targetClass, boolean staticMethods) } private static void collectMethods(Class c, Map result, boolean staticMethods) { - final Method[] ma = c.getDeclaredMethods(); + Method[] ma; + try { + ma = c.getDeclaredMethods(); + } catch (SecurityException ignored) { + ma = c.getMethods(); + } for (int i = 0, icount = ma.length; i < icount; i++) { if (c.isInterface()) @@ -2307,7 +2312,11 @@ public static Map getFields(Class targetClass) Field fa[]; result = new HashMap(23); - fa = targetClass.getDeclaredFields(); + try { + fa = targetClass.getDeclaredFields(); + } catch (SecurityException ignored) { + fa = targetClass.getFields(); + } for (int i = 0; i < fa.length; i++) { result.put(fa[i].getName(), fa[i]); } @@ -2595,7 +2604,12 @@ public static List getDeclaredMethods(Class targetClass, String propertyName, bo private static void collectAccessors(Class c, String baseName, List result, boolean findSets) { - final Method[] methods = c.getDeclaredMethods(); + Method[] methods; + try { + methods = c.getDeclaredMethods(); + } catch (SecurityException ignored) { + methods = c.getMethods(); + } for (int i = 0; i < methods.length; i++) { if (c.isInterface()) { if (isDefaultMethod(methods[i]) || isNonDefaultPublicInterfaceMethod(methods[i])) {