Adding possibility to reload the plugins
This commit is contained in:
		| @ -0,0 +1,27 @@ | |||||||
|  | package org.owasp.webgoat.plugins; | ||||||
|  |  | ||||||
|  | import javax.servlet.ServletContextEvent; | ||||||
|  | import javax.servlet.ServletContextListener; | ||||||
|  | import javax.servlet.annotation.WebListener; | ||||||
|  | import java.nio.file.Paths; | ||||||
|  | import java.util.concurrent.Executors; | ||||||
|  | import java.util.concurrent.ScheduledExecutorService; | ||||||
|  | import java.util.concurrent.TimeUnit; | ||||||
|  |  | ||||||
|  | @WebListener | ||||||
|  | public class PluginBackgroundLoader implements ServletContextListener { | ||||||
|  |  | ||||||
|  |     private ScheduledExecutorService scheduler; | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void contextInitialized(ServletContextEvent event) { | ||||||
|  |         String pluginPath = event.getServletContext().getRealPath("plugin_lessons"); | ||||||
|  |         scheduler = Executors.newSingleThreadScheduledExecutor(); | ||||||
|  |         scheduler.scheduleAtFixedRate(new PluginsLoader(Paths.get(pluginPath)), 0, 5, TimeUnit.SECONDS); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void contextDestroyed(ServletContextEvent event) { | ||||||
|  |         scheduler.shutdownNow(); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -12,7 +12,7 @@ import java.nio.file.attribute.BasicFileAttributes; | |||||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  |  | ||||||
| public class PluginsLoader { | public class PluginsLoader implements Runnable { | ||||||
|  |  | ||||||
|     private final Logger logger = LoggerFactory.getLogger(this.getClass()); |     private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||||||
|     private final Path path; |     private final Path path; | ||||||
| @ -49,4 +49,8 @@ public class PluginsLoader { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void run() { | ||||||
|  |         loadPlugins(); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user