From 896dc18a50950bcd99f704d7618fd2f90d6e6b9a Mon Sep 17 00:00:00 2001 From: Nanne Baars Date: Fri, 19 Jun 2015 14:47:20 +0200 Subject: [PATCH] Adding the classloader directory --- context.xml | 2 -- context.xmlold | 4 --- webgoat-classloader/pom.xml | 18 +++++++++++ .../classloader/PluginClassLoader.java | 31 +++++++++++++++++++ 4 files changed, 49 insertions(+), 6 deletions(-) delete mode 100644 context.xml delete mode 100644 context.xmlold create mode 100644 webgoat-classloader/pom.xml create mode 100644 webgoat-classloader/src/main/java/org/owasp/webgoat/classloader/PluginClassLoader.java diff --git a/context.xml b/context.xml deleted file mode 100644 index 889fb22d9..000000000 --- a/context.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/context.xmlold b/context.xmlold deleted file mode 100644 index 709b18244..000000000 --- a/context.xmlold +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/webgoat-classloader/pom.xml b/webgoat-classloader/pom.xml new file mode 100644 index 000000000..ecf0205b0 --- /dev/null +++ b/webgoat-classloader/pom.xml @@ -0,0 +1,18 @@ + + WebGoat + 4.0.0 + org.owasp.webgoat + webgoat-classloader + jar + 6.1.0 + + + + org.apache.tomcat + tomcat-catalina + 7.0.47 + + + + \ No newline at end of file diff --git a/webgoat-classloader/src/main/java/org/owasp/webgoat/classloader/PluginClassLoader.java b/webgoat-classloader/src/main/java/org/owasp/webgoat/classloader/PluginClassLoader.java new file mode 100644 index 000000000..6f7d4d683 --- /dev/null +++ b/webgoat-classloader/src/main/java/org/owasp/webgoat/classloader/PluginClassLoader.java @@ -0,0 +1,31 @@ +package org.owasp.webgoat.classloader; + +import org.apache.catalina.loader.WebappClassLoader; + +import java.net.URL; +import java.util.List; + +/** + * Classloader for Tomcat. + * + * We need to provide this classloader otherwise jsp files cannot be compiled. JspContextWrapper uses + * Thread.currentThread().getContextClassLoader() but during initialisation it loads the classloader which means + * this classloader will never pickup the plugin classes. + * + * With this loader we can add jars we load during the plugin loading and the jsp will pick it up because this is + * the same classloader. + */ +public class PluginClassLoader extends WebappClassLoader { + public PluginClassLoader() { + } + + public PluginClassLoader(ClassLoader parent) { + super(parent); + } + + public void addURL(List urls) { + for (URL url : urls) { + super.addURL(url); + } + } +}