[TASK]Added getResource() to catch error and fixed inverted statement

This commit is contained in:
Alexander Bielen
2018-11-26 19:10:36 +01:00
parent 2767b22707
commit 34ec727ca1
@@ -7,6 +7,7 @@ import org.parabot.environment.scripts.Script;
import java.io.InputStream; import java.io.InputStream;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.lang.reflect.*; import java.lang.reflect.*;
import java.net.URL;
import java.security.AccessController; import java.security.AccessController;
import java.security.PrivilegedAction; import java.security.PrivilegedAction;
import java.security.ProtectionDomain; import java.security.ProtectionDomain;
@@ -58,6 +59,15 @@ public class ClassRedirect {
return Class.forName(name); 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) { public static ClassLoader getClassLoader(Class<?> c) {
System.err.println(c.getName() + "#getClassLoader()" + " Blocked."); System.err.println(c.getName() + "#getClassLoader()" + " Blocked.");
throw RedirectClassAdapter.createSecurityException(); throw RedirectClassAdapter.createSecurityException();
@@ -213,6 +223,6 @@ public class ClassRedirect {
private static boolean validRequest(Class c) { private static boolean validRequest(Class c) {
Core.verbose("Got request for class: " + c.getName()); Core.verbose("Got request for class: " + c.getName());
return !c.getName().toLowerCase().contains("parabot"); return c.getName().toLowerCase().contains("parabot");
} }
} }