Merge pull request #289 from AlexanderBielen/issue-288/fix-runtime-error

Fix for issue #288
This commit is contained in:
Jeroen Ketelaar
2018-11-26 12:15:35 -06:00
committed by GitHub
@@ -7,6 +7,7 @@ import org.parabot.environment.scripts.Script;
import java.io.InputStream;
import java.lang.annotation.Annotation;
import java.lang.reflect.*;
import java.net.URL;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.security.ProtectionDomain;
@@ -58,6 +59,15 @@ public class ClassRedirect {
return Class.forName(name);
}
public static URL getResource(Class<?> c, String path) {
if(validStack() || validRequest(c)) {
return c.getResource(path);
}
System.err.println(c.getName() + "#getResource(" + path + ") Blocked.");
throw RedirectClassAdapter.createSecurityException();
}
public static ClassLoader getClassLoader(Class<?> c) {
System.err.println(c.getName() + "#getClassLoader()" + " Blocked.");
throw RedirectClassAdapter.createSecurityException();
@@ -213,6 +223,6 @@ public class ClassRedirect {
private static boolean validRequest(Class c) {
Core.verbose("Got request for class: " + c.getName());
return !c.getName().toLowerCase().contains("parabot");
return c.getName().toLowerCase().contains("parabot");
}
}