moved global properties from lessons to container, added loading of global properties to course, updated SqlInjection lesson
This commit is contained in:
@ -49,8 +49,8 @@ public class PluginExtractor {
|
||||
return FileVisitResult.CONTINUE;
|
||||
}
|
||||
});
|
||||
} catch (IOException io) {
|
||||
new Plugin.PluginLoadingFailure(format("Unable to extract: %s", pluginArchive.getFileName()), io);
|
||||
} catch (Exception e) {
|
||||
new Plugin.PluginLoadingFailure(format("Unable to extract: %s", pluginArchive.getFileName()), e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ public class PluginExtractor {
|
||||
return this.files;
|
||||
}
|
||||
|
||||
private FileSystem createZipFileSystem() throws IOException {
|
||||
private FileSystem createZipFileSystem() throws Exception {
|
||||
final URI uri = URI.create("jar:file:" + pluginArchive.toUri().getPath());
|
||||
return FileSystems.newFileSystem(uri, new HashMap<String, Object>());
|
||||
}
|
||||
|
@ -2,8 +2,11 @@ package org.owasp.webgoat.plugins;
|
||||
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.DirectoryStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PluginFileUtils {
|
||||
|
||||
@ -27,5 +30,17 @@ public class PluginFileUtils {
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
public static List<Path> getFilesInDirectory( Path directory) throws IOException
|
||||
{
|
||||
List<Path> files = new ArrayList<>();
|
||||
DirectoryStream<Path> dirStream;
|
||||
dirStream = Files.newDirectoryStream(directory);
|
||||
for (Path entry : dirStream) {
|
||||
files.add(entry);
|
||||
}
|
||||
dirStream.close();
|
||||
return files;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -14,7 +14,8 @@ import java.util.List;
|
||||
|
||||
public class PluginsLoader implements Runnable {
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
protected static final String WEBGOAT_PLUGIN_EXTENSION = "jar";
|
||||
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
private final Path pluginSource;
|
||||
private Path pluginTarget;
|
||||
|
||||
@ -31,14 +32,16 @@ public class PluginsLoader implements Runnable {
|
||||
@Override
|
||||
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
|
||||
try {
|
||||
PluginFileUtils.createDirsIfNotExists(pluginTarget);
|
||||
PluginExtractor extractor = new PluginExtractor(file);
|
||||
extractor.extract(pluginTarget);
|
||||
Plugin plugin = new Plugin(pluginTarget);
|
||||
plugin.loadClasses(extractor.getClasses());
|
||||
plugin.loadFiles(extractor.getFiles(), reload);
|
||||
plugin.rewritePaths(pluginTarget);
|
||||
plugins.add(plugin);
|
||||
if (PluginFileUtils.fileEndsWith(file, WEBGOAT_PLUGIN_EXTENSION)) {
|
||||
PluginFileUtils.createDirsIfNotExists(pluginTarget);
|
||||
PluginExtractor extractor = new PluginExtractor(file);
|
||||
extractor.extract(pluginTarget);
|
||||
Plugin plugin = new Plugin(pluginTarget);
|
||||
plugin.loadClasses(extractor.getClasses());
|
||||
plugin.loadFiles(extractor.getFiles(), reload);
|
||||
plugin.rewritePaths(pluginTarget);
|
||||
plugins.add(plugin);
|
||||
}
|
||||
} catch (Plugin.PluginLoadingFailure e) {
|
||||
logger.error("Unable to load plugin, continue loading others...");
|
||||
}
|
||||
|
Reference in New Issue
Block a user