downgrade ognl to 3.3.5. #2954, #2953

pull/2957/head
hengyunabc 3 months ago
parent 6cee2d33f3
commit aa23a4acc9

@ -1,9 +1,10 @@
package com.taobao.arthas.core.command.express; package com.taobao.arthas.core.command.express;
import java.util.Map;
import com.taobao.arthas.core.GlobalOptions; import com.taobao.arthas.core.GlobalOptions;
import ognl.ObjectPropertyAccessor; import ognl.ObjectPropertyAccessor;
import ognl.OgnlContext;
import ognl.OgnlException; import ognl.OgnlException;
/** /**
@ -12,7 +13,7 @@ import ognl.OgnlException;
public class ArthasObjectPropertyAccessor extends ObjectPropertyAccessor { public class ArthasObjectPropertyAccessor extends ObjectPropertyAccessor {
@Override @Override
public Object setPossibleProperty(OgnlContext context, Object target, String name, Object value) throws OgnlException { public Object setPossibleProperty(Map context, Object target, String name, Object value) throws OgnlException {
if (GlobalOptions.strict) { if (GlobalOptions.strict) {
throw new IllegalAccessError(GlobalOptions.STRICT_MESSAGE); throw new IllegalAccessError(GlobalOptions.STRICT_MESSAGE);
} }

@ -4,7 +4,6 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import ognl.ClassResolver; import ognl.ClassResolver;
import ognl.OgnlContext;
/** /**
* @author hengyunabc 2018-10-18 * @author hengyunabc 2018-10-18
@ -20,9 +19,8 @@ public class ClassLoaderClassResolver implements ClassResolver {
this.classLoader = classLoader; this.classLoader = classLoader;
} }
@Override @Override
public <T> Class<T> classForName(String className, OgnlContext ognlContext) throws ClassNotFoundException { public Class classForName(String className, Map context) throws ClassNotFoundException {
Class<?> result = null; Class<?> result = null;
if ((result = classes.get(className)) == null) { if ((result = classes.get(className)) == null) {
@ -39,6 +37,6 @@ public class ClassLoaderClassResolver implements ClassResolver {
} }
classes.put(className, result); classes.put(className, result);
} }
return (Class<T>) result; return result;
} }
} }

@ -1,7 +1,6 @@
package com.taobao.arthas.core.command.express; package com.taobao.arthas.core.command.express;
import ognl.ClassResolver; import ognl.ClassResolver;
import ognl.OgnlContext;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@ -21,7 +20,7 @@ public class CustomClassResolver implements ClassResolver {
} }
@Override @Override
public <T> Class<T> classForName(String className, OgnlContext ognlContext) throws ClassNotFoundException { public Class classForName(String className, Map context) throws ClassNotFoundException {
Class<?> result = null; Class<?> result = null;
if ((result = classes.get(className)) == null) { if ((result = classes.get(className)) == null) {
@ -40,6 +39,6 @@ public class CustomClassResolver implements ClassResolver {
} }
classes.put(className, result); classes.put(className, result);
} }
return (Class<T>) result; return result;
} }
} }

@ -1,11 +1,11 @@
package com.taobao.arthas.core.command.express; package com.taobao.arthas.core.command.express;
import ognl.MemberAccess; import ognl.MemberAccess;
import ognl.OgnlContext;
import java.lang.reflect.AccessibleObject; import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Member; import java.lang.reflect.Member;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.Map;
/** /**
* ognl.DefaultMemberAccess (ognl:ognl:3.1.19) * ognl.DefaultMemberAccess (ognl:ognl:3.1.19)
@ -58,7 +58,8 @@ public class DefaultMemberAccess implements MemberAccess {
allowPackageProtectedAccess = value; allowPackageProtectedAccess = value;
} }
public Object setup(OgnlContext context, Object target, Member member, String propertyName) { @Override
public Object setup(Map context, Object target, Member member, String propertyName) {
Object result = null; Object result = null;
if (isAccessible(context, target, member, propertyName)) { if (isAccessible(context, target, member, propertyName)) {
@ -72,7 +73,8 @@ public class DefaultMemberAccess implements MemberAccess {
return result; return result;
} }
public void restore(OgnlContext context, Object target, Member member, String propertyName, Object state) { @Override
public void restore(Map context, Object target, Member member, String propertyName, Object state) {
if (state != null) { if (state != null) {
((AccessibleObject)member).setAccessible((Boolean)state); ((AccessibleObject)member).setAccessible((Boolean)state);
} }
@ -88,7 +90,8 @@ public class DefaultMemberAccess implements MemberAccess {
* @param propertyName the property to test accessibility for (not used). * @param propertyName the property to test accessibility for (not used).
* @return true if the member is accessible in the context, false otherwise. * @return true if the member is accessible in the context, false otherwise.
*/ */
public boolean isAccessible(OgnlContext context, Object target, Member member, String propertyName) { @Override
public boolean isAccessible(Map context, Object target, Member member, String propertyName) {
int modifiers = member.getModifiers(); int modifiers = member.getModifiers();
boolean result = Modifier.isPublic(modifiers); boolean result = Modifier.isPublic(modifiers);

@ -161,7 +161,7 @@
<dependency> <dependency>
<groupId>ognl</groupId> <groupId>ognl</groupId>
<artifactId>ognl</artifactId> <artifactId>ognl</artifactId>
<version>3.4.2</version> <version>3.3.5</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.junit</groupId> <groupId>org.junit</groupId>

Loading…
Cancel
Save