From d8d7c06cff40f8b1aa9ad466eb00239642a1227c Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Thu, 26 Jan 2017 20:52:36 +0100 Subject: [PATCH 1/2] [TASK] Temp disable of ClassLoaderRedirect --- src/main/java/org/parabot/core/asm/RedirectClassAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/core/asm/RedirectClassAdapter.java b/src/main/java/org/parabot/core/asm/RedirectClassAdapter.java index 8e32608..3acc130 100644 --- a/src/main/java/org/parabot/core/asm/RedirectClassAdapter.java +++ b/src/main/java/org/parabot/core/asm/RedirectClassAdapter.java @@ -25,7 +25,7 @@ public class RedirectClassAdapter extends ClassVisitor implements Opcodes { static { redirects.put("java/awt/Toolkit", ToolkitRedirect.class); redirects.put("java/lang/Class", ClassRedirect.class); - redirects.put("java/lang/ClassLoader", ClassLoaderRedirect.class); +// redirects.put("java/lang/ClassLoader", ClassLoaderRedirect.class); redirects.put("java/lang/Runtime", RuntimeRedirect.class); redirects.put("java/lang/Thread", ThreadRedirect.class); redirects.put("java/lang/StackTraceElement", From 04a90761add2032e01917198b84df0c04a221c8d Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Thu, 26 Jan 2017 20:52:59 +0100 Subject: [PATCH 2/2] [TASK] Added more methods for ClassLoaderRedirect --- .../asm/redirect/ClassLoaderRedirect.java | 44 +++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/parabot/core/asm/redirect/ClassLoaderRedirect.java b/src/main/java/org/parabot/core/asm/redirect/ClassLoaderRedirect.java index 5a771a4..54bc5d5 100644 --- a/src/main/java/org/parabot/core/asm/redirect/ClassLoaderRedirect.java +++ b/src/main/java/org/parabot/core/asm/redirect/ClassLoaderRedirect.java @@ -1,15 +1,53 @@ package org.parabot.core.asm.redirect; +import org.parabot.core.Core; import org.parabot.core.asm.RedirectClassAdapter; -public class ClassLoaderRedirect { - +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.Enumeration; + +public class ClassLoaderRedirect extends ClassLoader { + + static int count = 0; + public static ClassloadClass(ClassLoader c,String name){ throw RedirectClassAdapter.createSecurityException(); } - static int count = 0; + public static ClassLoader getParent(ClassLoader c){ throw RedirectClassAdapter.createSecurityException(); } + public static URL getResource(ClassLoader classLoader, String name) { + Core.verbose("#getResource requested for ClassLoaderRedirect (" + name + ")"); + return classLoader.getResource(name); + } + + public static Enumeration getResources(ClassLoader classLoader, String name) throws IOException { + Core.verbose("#getResource requested for ClassLoaderRedirect (" + name + ")"); + return classLoader.getResources(name); + } + + public static InputStream getResourceAsStream(ClassLoader classLoader, String name) { + Core.verbose("#getResourceAsStream requested for ClassLoaderRedirect (" + name + ")"); + return classLoader.getResourceAsStream(name); + } + + public static void setDefaultAssertionStatus(ClassLoader classLoader, boolean enabled) { + + } + + public static void setPackageAssertionStatus(ClassLoader classLoader, String packageName, boolean enabled) { + + } + + public static void setClassAssertionStatus(ClassLoader classLoader, String className, boolean enabled) { + + } + + public static void clearAssertionStatus(ClassLoader classLoader) { + + } }