diff --git a/boot/src/main/java/com/reajason/javaweb/boot/controller/ConfigController.java b/boot/src/main/java/com/reajason/javaweb/boot/controller/ConfigController.java index fe9ca783..4f3ea3a7 100644 --- a/boot/src/main/java/com/reajason/javaweb/boot/controller/ConfigController.java +++ b/boot/src/main/java/com/reajason/javaweb/boot/controller/ConfigController.java @@ -30,9 +30,9 @@ public class ConfigController { continue; } ShellTool[] supportedShellTools = ShellTool.values(); - Map> map = new LinkedHashMap<>(16); + Map> map = new LinkedHashMap<>(16); for (ShellTool shellTool : supportedShellTools) { - List supportedShellTypes = shell.getSupportedShellTypes(shellTool); + Set supportedShellTypes = shell.getSupportedShellTypes(shellTool); if (supportedShellTypes.isEmpty()) { continue; } diff --git a/boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java b/boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java index d9ad72ae..4132e846 100644 --- a/boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java +++ b/boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java @@ -1,6 +1,6 @@ package com.reajason.javaweb.boot.controller; -import com.reajason.javaweb.memshell.GeneratorMain; +import com.reajason.javaweb.memshell.MemShellGenerator; import com.reajason.javaweb.boot.dto.GenerateRequest; import com.reajason.javaweb.boot.dto.GenerateResponse; import com.reajason.javaweb.memshell.config.GenerateResult; @@ -28,7 +28,7 @@ public class GeneratorController { ShellConfig shellConfig = request.getShellConfig(); ShellToolConfig shellToolConfig = request.parseShellToolConfig(); InjectorConfig injectorConfig = request.getInjectorConfig(); - GenerateResult generateResult = GeneratorMain.generate(shellConfig, injectorConfig, shellToolConfig); + GenerateResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, shellToolConfig); Packer packer = request.getPacker().getInstance(); if (packer instanceof JarPacker) { return ResponseEntity.ok(new GenerateResponse(generateResult, Base64.getEncoder().encodeToString(((JarPacker) packer).packBytes(generateResult)))); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/GeneratorMain.java b/generator/src/main/java/com/reajason/javaweb/memshell/MemShellGenerator.java similarity index 62% rename from generator/src/main/java/com/reajason/javaweb/memshell/GeneratorMain.java rename to generator/src/main/java/com/reajason/javaweb/memshell/MemShellGenerator.java index b5a5cc41..89315bb5 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/GeneratorMain.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/MemShellGenerator.java @@ -4,56 +4,14 @@ import com.reajason.javaweb.memshell.config.*; import com.reajason.javaweb.memshell.generator.*; import com.reajason.javaweb.memshell.server.AbstractShell; import com.reajason.javaweb.memshell.utils.CommonUtil; -import net.bytebuddy.jar.asm.Opcodes; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.nio.file.StandardOpenOption; - /** * @author ReaJason * @since 2024/11/24 */ -public class GeneratorMain { - - public static void main(String[] args) throws IOException { - ShellConfig shellConfig = ShellConfig.builder() - .server(Server.Apusic) - .shellTool(ShellTool.Behinder) - .shellType(ShellType.LISTENER) - .targetJreVersion(Opcodes.V1_8) - .debug(true) - .build(); - GodzillaConfig godzillaConfig = GodzillaConfig.builder() - .pass("pass") - .key("key") - .headerName("User-Agent") - .headerValue("test123").build(); - CommandConfig commandConfig = CommandConfig.builder().paramName("listener").build(); - - BehinderConfig behinderConfig = BehinderConfig.builder() - .pass("test123") - .headerName("User-Agent") - .headerValue("test").build(); - - Suo5Config suo5Config = Suo5Config.builder() - .headerName("User-Agent") - .headerValue("test").build(); - - InjectorConfig injectorConfig = new InjectorConfig(); - - GenerateResult generateResult = generate(shellConfig, injectorConfig, behinderConfig); - if (generateResult != null) { - Files.write(Paths.get(generateResult.getInjectorClassName() + ".class"), generateResult.getInjectorBytes(), StandardOpenOption.CREATE_NEW); - Files.write(Paths.get(generateResult.getShellClassName() + ".class"), generateResult.getShellBytes(), StandardOpenOption.CREATE_NEW); -// System.out.println(Base64.encodeBase64String(generateResult.getInjectorBytes())); -// System.out.println(Packers.ScriptEngine.getInstance().pack(generateResult)); -// Files.write(Path.of("target.jar"), Packer.INSTANCE.AgentJar.getPacker().packBytes(generateResult)); - } - } +public class MemShellGenerator { public static GenerateResult generate(ShellConfig shellConfig, InjectorConfig injectorConfig, ShellToolConfig shellToolConfig) { Server server = shellConfig.getServer(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/ShellTool.java b/generator/src/main/java/com/reajason/javaweb/memshell/ShellTool.java index 8255b135..0a8a6296 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/ShellTool.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/ShellTool.java @@ -1,5 +1,49 @@ package com.reajason.javaweb.memshell; +import com.reajason.javaweb.memshell.server.ToolMapping; +import com.reajason.javaweb.memshell.shelltool.antsword.*; +import com.reajason.javaweb.memshell.shelltool.antsword.jetty.AntSwordHandlerAdvisor; +import com.reajason.javaweb.memshell.shelltool.antsword.undertow.AntSwordServletInitialHandlerAdvisor; +import com.reajason.javaweb.memshell.shelltool.behinder.*; +import com.reajason.javaweb.memshell.shelltool.behinder.jetty.BehinderHandlerAdvisor; +import com.reajason.javaweb.memshell.shelltool.behinder.undertow.BehinderServletInitialHandlerAdvisor; +import com.reajason.javaweb.memshell.shelltool.command.*; +import com.reajason.javaweb.memshell.shelltool.command.jetty.CommandHandlerAdvisor; +import com.reajason.javaweb.memshell.shelltool.command.undertow.CommandServletInitialHandlerAdvisor; +import com.reajason.javaweb.memshell.shelltool.godzilla.*; +import com.reajason.javaweb.memshell.shelltool.godzilla.jetty.GodzillaHandlerAdvisor; +import com.reajason.javaweb.memshell.shelltool.godzilla.undertow.GodzillaServletInitialHandlerAdvisor; +import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; +import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Listener; +import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet; +import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Valve; +import com.reajason.javaweb.memshell.springwebflux.command.CommandHandlerFunction; +import com.reajason.javaweb.memshell.springwebflux.command.CommandHandlerMethod; +import com.reajason.javaweb.memshell.springwebflux.command.CommandNettyHandler; +import com.reajason.javaweb.memshell.springwebflux.command.CommandWebFilter; +import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaHandlerFunction; +import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaHandlerMethod; +import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaNettyHandler; +import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaWebFilter; +import com.reajason.javaweb.memshell.springwebflux.suo5.Suo5WebFilter; +import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordControllerHandler; +import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordInterceptor; +import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordServletAdvisor; +import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderControllerHandler; +import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderInterceptor; +import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderServletAdvisor; +import com.reajason.javaweb.memshell.springwebmvc.command.CommandControllerHandler; +import com.reajason.javaweb.memshell.springwebmvc.command.CommandInterceptor; +import com.reajason.javaweb.memshell.springwebmvc.command.CommandServletAdvisor; +import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaControllerHandler; +import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaInterceptor; +import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaServletAdvisor; +import com.reajason.javaweb.memshell.springwebmvc.suo5.Suo5ControllerHandler; +import com.reajason.javaweb.memshell.springwebmvc.suo5.Suo5Interceptor; + +import static com.reajason.javaweb.memshell.ShellType.*; +import static com.reajason.javaweb.memshell.server.ServerToolRegistry.addToolMapping; + /** * @author ReaJason * @since 2024/11/22 @@ -29,4 +73,118 @@ public enum ShellTool { * 蚁剑 */ AntSword, + + ; + + + static { + addToolMapping(ShellTool.Command, ToolMapping.builder() + .addShellClass(SERVLET, CommandServlet.class) + .addShellClass(JAKARTA_SERVLET, CommandServlet.class) + .addShellClass(FILTER, CommandFilter.class) + .addShellClass(JAKARTA_FILTER, CommandFilter.class) + .addShellClass(LISTENER, CommandListener.class) + .addShellClass(JAKARTA_LISTENER, CommandListener.class) + .addShellClass(VALVE, CommandValve.class) + .addShellClass(JAKARTA_VALVE, CommandValve.class) + .addShellClass(WEBSOCKET, CommandWebSocket.class) + .addShellClass(SPRING_WEBMVC_INTERCEPTOR, CommandInterceptor.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, CommandInterceptor.class) + .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, CommandControllerHandler.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, CommandControllerHandler.class) + .addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, CommandServletAdvisor.class) + .addShellClass(SPRING_WEBFLUX_WEB_FILTER, CommandWebFilter.class) + .addShellClass(SPRING_WEBFLUX_HANDLER_METHOD, CommandHandlerMethod.class) + .addShellClass(SPRING_WEBFLUX_HANDLER_FUNCTION, CommandHandlerFunction.class) + .addShellClass(NETTY_HANDLER, CommandNettyHandler.class) + .addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class) + .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class) + .addShellClass(JETTY_AGENT_HANDLER, CommandHandlerAdvisor.class) + .addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, CommandServletInitialHandlerAdvisor.class) + .addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, CommandFilterChainAdvisor.class) + .addShellClass(WAS_AGENT_FILTER_MANAGER, CommandFilterChainAdvisor.class) + .build()); + + addToolMapping(ShellTool.Godzilla, ToolMapping.builder() + .addShellClass(SERVLET, GodzillaServlet.class) + .addShellClass(JAKARTA_SERVLET, GodzillaServlet.class) + .addShellClass(FILTER, GodzillaFilter.class) + .addShellClass(JAKARTA_FILTER, GodzillaFilter.class) + .addShellClass(LISTENER, GodzillaListener.class) + .addShellClass(JAKARTA_LISTENER, GodzillaListener.class) + .addShellClass(VALVE, GodzillaValve.class) + .addShellClass(JAKARTA_VALVE, GodzillaValve.class) + .addShellClass(SPRING_WEBMVC_INTERCEPTOR, GodzillaInterceptor.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, GodzillaInterceptor.class) + .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, GodzillaControllerHandler.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, GodzillaControllerHandler.class) + .addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, GodzillaServletAdvisor.class) + .addShellClass(SPRING_WEBFLUX_WEB_FILTER, GodzillaWebFilter.class) + .addShellClass(SPRING_WEBFLUX_HANDLER_METHOD, GodzillaHandlerMethod.class) + .addShellClass(SPRING_WEBFLUX_HANDLER_FUNCTION, GodzillaHandlerFunction.class) + .addShellClass(NETTY_HANDLER, GodzillaNettyHandler.class) + .addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class) + .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class) + .addShellClass(JETTY_AGENT_HANDLER, GodzillaHandlerAdvisor.class) + .addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, GodzillaServletInitialHandlerAdvisor.class) + .addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, GodzillaFilterChainAdvisor.class) + .addShellClass(WAS_AGENT_FILTER_MANAGER, GodzillaFilterChainAdvisor.class) + .build()); + + addToolMapping(ShellTool.Behinder, ToolMapping.builder() + .addShellClass(SERVLET, BehinderServlet.class) + .addShellClass(JAKARTA_SERVLET, BehinderServlet.class) + .addShellClass(FILTER, BehinderFilter.class) + .addShellClass(JAKARTA_FILTER, BehinderFilter.class) + .addShellClass(LISTENER, BehinderListener.class) + .addShellClass(JAKARTA_LISTENER, BehinderListener.class) + .addShellClass(VALVE, BehinderValve.class) + .addShellClass(JAKARTA_VALVE, BehinderValve.class) + .addShellClass(SPRING_WEBMVC_INTERCEPTOR, BehinderInterceptor.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, BehinderInterceptor.class) + .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, BehinderControllerHandler.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, BehinderControllerHandler.class) + .addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, BehinderServletAdvisor.class) + .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) + .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class) + .addShellClass(JETTY_AGENT_HANDLER, BehinderHandlerAdvisor.class) + .addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, BehinderServletInitialHandlerAdvisor.class) + .addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, BehinderFilterChainAdvisor.class) + .addShellClass(WAS_AGENT_FILTER_MANAGER, BehinderFilterChainAdvisor.class) + .build()); + + addToolMapping(ShellTool.Suo5, ToolMapping.builder() + .addShellClass(SERVLET, Suo5Servlet.class) + .addShellClass(JAKARTA_SERVLET, Suo5Servlet.class) + .addShellClass(FILTER, Suo5Filter.class) + .addShellClass(JAKARTA_FILTER, Suo5Filter.class) + .addShellClass(LISTENER, Suo5Listener.class) + .addShellClass(JAKARTA_LISTENER, Suo5Listener.class) + .addShellClass(VALVE, Suo5Valve.class) + .addShellClass(JAKARTA_VALVE, Suo5Valve.class) + .addShellClass(SPRING_WEBMVC_INTERCEPTOR, Suo5Interceptor.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, Suo5Interceptor.class) + .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, Suo5ControllerHandler.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, Suo5ControllerHandler.class) + .addShellClass(SPRING_WEBFLUX_WEB_FILTER, Suo5WebFilter.class) + .build()); + + addToolMapping(ShellTool.AntSword, ToolMapping.builder() + .addShellClass(SERVLET, AntSwordServlet.class) + .addShellClass(FILTER, AntSwordFilter.class) + .addShellClass(LISTENER, AntSwordListener.class) + .addShellClass(VALVE, AntSwordValve.class) + .addShellClass(SPRING_WEBMVC_INTERCEPTOR, AntSwordInterceptor.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, AntSwordInterceptor.class) + .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, AntSwordControllerHandler.class) + .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, AntSwordControllerHandler.class) + .addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, AntSwordServletAdvisor.class) + .addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class) + .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class) + .addShellClass(JETTY_AGENT_HANDLER, AntSwordHandlerAdvisor.class) + .addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, AntSwordServletInitialHandlerAdvisor.class) + .addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, AntSwordFilterChainAdvisor.class) + .addShellClass(WAS_AGENT_FILTER_MANAGER, AntSwordFilterChainAdvisor.class) + .build()); + } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/ShellType.java b/generator/src/main/java/com/reajason/javaweb/memshell/ShellType.java index 368764ce..8f9a521e 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/ShellType.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/ShellType.java @@ -31,7 +31,7 @@ public class ShellType { public static final String SPRING_WEBMVC_JAKARTA_INTERCEPTOR = "JakartaInterceptor"; public static final String SPRING_WEBMVC_CONTROLLER_HANDLER = "ControllerHandler"; public static final String SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER = "JakartaControllerHandler"; - public static final String SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET = "AgentFrameworkServlet"; + public static final String SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET = AGENT + "FrameworkServlet"; public static final String SPRING_WEBFLUX_WEB_FILTER = "WebFilter"; public static final String SPRING_WEBFLUX_HANDLER_METHOD = "HandlerMethod"; diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/generator/AntSwordGenerator.java b/generator/src/main/java/com/reajason/javaweb/memshell/generator/AntSwordGenerator.java index abb7012c..67ae22f5 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/generator/AntSwordGenerator.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/generator/AntSwordGenerator.java @@ -19,7 +19,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named; * @author ReaJason * @since 2025/02/18 */ -public class AntSwordGenerator { +public class AntSwordGenerator { private final ShellConfig shellConfig; private final AntSwordConfig antSwordConfig; diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/generator/InjectorGenerator.java b/generator/src/main/java/com/reajason/javaweb/memshell/generator/InjectorGenerator.java index 53e09ae6..5f66f186 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/generator/InjectorGenerator.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/generator/InjectorGenerator.java @@ -32,9 +32,7 @@ public class InjectorGenerator { @SneakyThrows public DynamicType.Builder getBuilder() { - String base64String = Base64.encodeBase64String( - CommonUtil.gzipCompress(injectorConfig.getShellClassBytes())) - .replace(System.lineSeparator(), ""); + String base64String = Base64.encodeBase64String(CommonUtil.gzipCompress(injectorConfig.getShellClassBytes())); DynamicType.Builder builder = new ByteBuddy() .redefine(injectorConfig.getInjectorClass()) .name(injectorConfig.getInjectorClassName()) diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/generator/ListenerGenerator.java b/generator/src/main/java/com/reajason/javaweb/memshell/generator/ListenerGenerator.java index 76afee97..cd982f0e 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/generator/ListenerGenerator.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/generator/ListenerGenerator.java @@ -25,27 +25,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named; */ public class ListenerGenerator { - public static Class generateListenerShellClass(Class implInterceptor, ShellTool shellTool) { - Class targetClass = null; - switch (shellTool) { - case Suo5: - targetClass = Suo5Listener.class; - break; - case Godzilla: - targetClass = GodzillaListener.class; - break; - case Behinder: - targetClass = BehinderListener.class; - break; - case AntSword: - targetClass = AntSwordListener.class; - break; - case Command: - targetClass = CommandListener.class; - break; - default: - throw new IllegalArgumentException("Unknown shell tool: " + shellTool); - } + public static Class generateListenerShellClass(Class implInterceptor, Class targetClass) { String newClassName = targetClass.getName() + CommonUtil.getRandomString(5); try (DynamicType.Unloaded unloaded = new ByteBuddy() diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/generator/ValveGenerator.java b/generator/src/main/java/com/reajason/javaweb/memshell/generator/ValveGenerator.java index d472655b..9b0c3939 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/generator/ValveGenerator.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/generator/ValveGenerator.java @@ -1,11 +1,5 @@ package com.reajason.javaweb.memshell.generator; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordValve; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderValve; -import com.reajason.javaweb.memshell.shelltool.command.CommandValve; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaValve; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Valve; import com.reajason.javaweb.memshell.utils.CommonUtil; import com.tongweb.web.thor.comet.CometEvent; import com.tongweb.web.thor.connector.Request; @@ -81,27 +75,7 @@ public class ValveGenerator { } } - public static Class generateValveClass(String packageName, ShellTool shellTool) { - Class targetClass = null; - switch (shellTool) { - case Suo5: - targetClass = Suo5Valve.class; - break; - case Godzilla: - targetClass = GodzillaValve.class; - break; - case Behinder: - targetClass = BehinderValve.class; - break; - case AntSword: - targetClass = AntSwordValve.class; - break; - case Command: - targetClass = CommandValve.class; - break; - default: - throw new IllegalArgumentException("Unknown shell tool: " + shellTool); - } + public static Class generateValveClass(String packageName, Class targetClass) { String newClassName = targetClass.getName() + CommonUtil.getRandomString(5); DynamicType.Builder builder = new ByteBuddy() @@ -118,18 +92,8 @@ public class ValveGenerator { .intercept(FixedValue.originType()); } - try (DynamicType.Unloaded unloaded = builder.make()) { return unloaded.load(ValveGenerator.class.getClassLoader(), ClassLoadingStrategy.Default.WRAPPER_PERSISTENT).getLoaded(); } } - - private static Class generateClass(String className) { - try (DynamicType.Unloaded unloaded = new ByteBuddy() - .subclass(Object.class) - .name(className) - .make()) { - return unloaded.load(ValveGenerator.class.getClassLoader(), ClassLoadingStrategy.Default.WRAPPER_PERSISTENT).getLoaded(); - } - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/AbstractShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/AbstractShell.java index 7923d59a..9e2dcef4 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/AbstractShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/AbstractShell.java @@ -5,8 +5,8 @@ import org.apache.commons.lang3.tuple.Pair; import java.util.Collections; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; +import java.util.Set; /** * @author ReaJason @@ -16,10 +16,6 @@ public abstract class AbstractShell { private final Map map = new LinkedHashMap<>(); - public AbstractShell() { - init(); - } - /** * 定义注入器映射 * @@ -27,26 +23,24 @@ public abstract class AbstractShell { */ abstract InjectorMapping getShellInjectorMapping(); + public Class getListenerInterceptor() { + return null; + } + protected void addToolMapping(ShellTool shellTool, ToolMapping mapping) { map.put(shellTool, mapping); } - /** - * 初始化方法,用来定义 shellToolMapping 填充 map - */ - abstract void init(); - - /** * 获取内存马功能所支持的注入类型列表 * * @param shellTool 内存马功能 * @return shellTypes */ - public List getSupportedShellTypes(ShellTool shellTool) { + public Set getSupportedShellTypes(ShellTool shellTool) { ToolMapping toolMapping = map.get(shellTool); if (toolMapping == null) { - return Collections.emptyList(); + return Collections.emptySet(); } return toolMapping.getSupportedShellTypes(); } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/ApusicShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/ApusicShell.java index ee0ef3f6..0488c3de 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/ApusicShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/ApusicShell.java @@ -1,20 +1,8 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.apusic.injector.ApusicFilterInjector; -import com.reajason.javaweb.memshell.apusic.injector.ApusicListenerInjector; -import com.reajason.javaweb.memshell.apusic.injector.ApusicServletInjector; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordServlet; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderServlet; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandServlet; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaServlet; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet; +import com.reajason.javaweb.memshell.injector.apusic.ApusicFilterInjector; +import com.reajason.javaweb.memshell.injector.apusic.ApusicListenerInjector; +import com.reajason.javaweb.memshell.injector.apusic.ApusicServletInjector; import com.reajason.javaweb.memshell.utils.ShellCommonUtil; import net.bytebuddy.asm.Advice; import net.bytebuddy.implementation.bytecode.assign.Assigner; @@ -34,6 +22,11 @@ public class ApusicShell extends AbstractShell { } } + @Override + public Class getListenerInterceptor() { + return ListenerInterceptor.class; + } + @Override public InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -41,32 +34,4 @@ public class ApusicShell extends AbstractShell { .addInjector(FILTER, ApusicFilterInjector.class) .addInjector(LISTENER, ApusicListenerInjector.class).build(); } - - @Override - protected void init() { - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(SERVLET, GodzillaServlet.class) - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Godzilla)).build()); - - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(SERVLET, CommandServlet.class) - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Command)).build()); - - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(SERVLET, BehinderServlet.class) - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Behinder)).build()); - - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(SERVLET, Suo5Servlet.class) - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Suo5)).build()); - - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(SERVLET, AntSwordServlet.class) - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.AntSword)).build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/BesShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/BesShell.java index 700d7433..d42fd1ee 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/BesShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/BesShell.java @@ -1,18 +1,6 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.bes.injector.*; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.generator.ValveGenerator; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; +import com.reajason.javaweb.memshell.injector.bes.*; import static com.reajason.javaweb.memshell.ShellType.*; @@ -22,6 +10,11 @@ import static com.reajason.javaweb.memshell.ShellType.*; */ public class BesShell extends AbstractShell { + @Override + public Class getListenerInterceptor() { + return TomcatShell.ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -32,47 +25,4 @@ public class BesShell extends AbstractShell { .addInjector(CATALINA_AGENT_CONTEXT_VALVE, BesContextValveAgentInjector.class) .build(); } - - @Override - protected void init() { - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Command)) - .addShellClass(VALVE, ValveGenerator.generateValveClass(ValveGenerator.BES_VALVE_PACKAGE, ShellTool.Command)) - .addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Godzilla)) - .addShellClass(VALVE, ValveGenerator.generateValveClass(ValveGenerator.BES_VALVE_PACKAGE, ShellTool.Godzilla)) - .addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Behinder)) - .addShellClass(VALVE, ValveGenerator.generateValveClass(ValveGenerator.BES_VALVE_PACKAGE, ShellTool.Behinder)) - .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Suo5)) - .addShellClass(VALVE, ValveGenerator.generateValveClass(ValveGenerator.BES_VALVE_PACKAGE, ShellTool.Suo5)) - .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.AntSword)) - .addShellClass(VALVE, ValveGenerator.generateValveClass(ValveGenerator.BES_VALVE_PACKAGE, ShellTool.AntSword)) - .addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/GlassFishShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/GlassFishShell.java index e5ad3426..fa548ac6 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/GlassFishShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/GlassFishShell.java @@ -1,26 +1,10 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.glassfish.injector.GlassFishFilterInjector; -import com.reajason.javaweb.memshell.glassfish.injector.GlassFishListenerInjector; -import com.reajason.javaweb.memshell.glassfish.injector.GlassFishValveInjector; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordValve; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderValve; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.command.CommandValve; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaValve; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Valve; -import com.reajason.javaweb.memshell.tomcat.injector.TomcatContextValveAgentInjector; -import com.reajason.javaweb.memshell.tomcat.injector.TomcatFilterChainAgentInjector; +import com.reajason.javaweb.memshell.injector.glassfish.GlassFishFilterInjector; +import com.reajason.javaweb.memshell.injector.glassfish.GlassFishListenerInjector; +import com.reajason.javaweb.memshell.injector.glassfish.GlassFishValveInjector; +import com.reajason.javaweb.memshell.injector.tomcat.TomcatContextValveAgentInjector; +import com.reajason.javaweb.memshell.injector.tomcat.TomcatFilterChainAgentInjector; import com.reajason.javaweb.memshell.utils.ShellCommonUtil; import net.bytebuddy.asm.Advice; import net.bytebuddy.implementation.bytecode.assign.Assigner; @@ -50,6 +34,11 @@ public class GlassFishShell extends AbstractShell { } } + @Override + public Class getListenerInterceptor() { + return ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -63,63 +52,4 @@ public class GlassFishShell extends AbstractShell { .addInjector(CATALINA_AGENT_CONTEXT_VALVE, TomcatContextValveAgentInjector.class) .build(); } - - - @Override - protected void init() { - Class commandListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Command); - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(JAKARTA_FILTER, CommandFilter.class) - .addShellClass(LISTENER, commandListenerClass) - .addShellClass(JAKARTA_LISTENER, commandListenerClass) - .addShellClass(VALVE, CommandValve.class) - .addShellClass(JAKARTA_VALVE, CommandValve.class) - .addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class) - .build()); - - Class godzillaListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Godzilla); - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(JAKARTA_FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, godzillaListenerClass) - .addShellClass(JAKARTA_LISTENER, godzillaListenerClass) - .addShellClass(VALVE, GodzillaValve.class) - .addShellClass(JAKARTA_VALVE, GodzillaValve.class) - .addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class) - .build()); - - Class behinderListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Behinder); - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(JAKARTA_FILTER, BehinderFilter.class) - .addShellClass(LISTENER, behinderListenerClass) - .addShellClass(JAKARTA_LISTENER, behinderListenerClass) - .addShellClass(VALVE, BehinderValve.class) - .addShellClass(JAKARTA_VALVE, BehinderValve.class) - .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class) - .build()); - - Class suo5ListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Suo5); - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(JAKARTA_FILTER, Suo5Filter.class) - .addShellClass(LISTENER, suo5ListenerClass) - .addShellClass(JAKARTA_LISTENER, suo5ListenerClass) - .addShellClass(VALVE, Suo5Valve.class) - .addShellClass(JAKARTA_VALVE, Suo5Valve.class) - .build()); - - Class antSwordListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.AntSword); - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, antSwordListenerClass) - .addShellClass(VALVE, AntSwordValve.class) - .addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class) - .build()); - } } \ No newline at end of file diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/InforSuiteShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/InforSuiteShell.java index 00550d92..3ff4061e 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/InforSuiteShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/InforSuiteShell.java @@ -1,26 +1,10 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.glassfish.injector.GlassFishListenerInjector; -import com.reajason.javaweb.memshell.glassfish.injector.GlassFishValveInjector; -import com.reajason.javaweb.memshell.inforsuite.injector.InforSuiteFilterInjector; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordValve; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderValve; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.command.CommandValve; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaValve; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Valve; -import com.reajason.javaweb.memshell.tomcat.injector.TomcatContextValveAgentInjector; -import com.reajason.javaweb.memshell.tomcat.injector.TomcatFilterChainAgentInjector; +import com.reajason.javaweb.memshell.injector.glassfish.GlassFishListenerInjector; +import com.reajason.javaweb.memshell.injector.glassfish.GlassFishValveInjector; +import com.reajason.javaweb.memshell.injector.inforsuite.InforSuiteFilterInjector; +import com.reajason.javaweb.memshell.injector.tomcat.TomcatContextValveAgentInjector; +import com.reajason.javaweb.memshell.injector.tomcat.TomcatFilterChainAgentInjector; import static com.reajason.javaweb.memshell.ShellType.*; @@ -30,6 +14,11 @@ import static com.reajason.javaweb.memshell.ShellType.*; */ public class InforSuiteShell extends AbstractShell { + @Override + public Class getListenerInterceptor() { + return TomcatShell.ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -43,62 +32,4 @@ public class InforSuiteShell extends AbstractShell { .addInjector(CATALINA_AGENT_CONTEXT_VALVE, TomcatContextValveAgentInjector.class) .build(); } - - @Override - protected void init() { - Class commandListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Command); - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(JAKARTA_FILTER, CommandFilter.class) - .addShellClass(LISTENER, commandListenerClass) - .addShellClass(JAKARTA_LISTENER, commandListenerClass) - .addShellClass(VALVE, CommandValve.class) - .addShellClass(JAKARTA_VALVE, CommandValve.class) - .addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class) - .build()); - - Class godzillaListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Godzilla); - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(JAKARTA_FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, godzillaListenerClass) - .addShellClass(JAKARTA_LISTENER, godzillaListenerClass) - .addShellClass(VALVE, GodzillaValve.class) - .addShellClass(JAKARTA_VALVE, GodzillaValve.class) - .addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class) - .build()); - - Class behinderListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Behinder); - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(JAKARTA_FILTER, BehinderFilter.class) - .addShellClass(LISTENER, behinderListenerClass) - .addShellClass(JAKARTA_LISTENER, behinderListenerClass) - .addShellClass(VALVE, BehinderValve.class) - .addShellClass(JAKARTA_VALVE, BehinderValve.class) - .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class) - .build()); - - Class suo5ListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Suo5); - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(JAKARTA_FILTER, Suo5Filter.class) - .addShellClass(LISTENER, suo5ListenerClass) - .addShellClass(JAKARTA_LISTENER, suo5ListenerClass) - .addShellClass(VALVE, Suo5Valve.class) - .addShellClass(JAKARTA_VALVE, Suo5Valve.class) - .build()); - - Class antSwordListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.AntSword); - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, antSwordListenerClass) - .addShellClass(VALVE, AntSwordValve.class) - .addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/InjectorMapping.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/InjectorMapping.java index dac20148..aa8598dc 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/InjectorMapping.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/InjectorMapping.java @@ -1,29 +1,32 @@ package com.reajason.javaweb.memshell.server; -import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Singular; -import java.util.ArrayList; -import java.util.List; +import java.util.Collections; +import java.util.LinkedHashMap; import java.util.Map; +import java.util.Set; /** * @author ReaJason * @since 2025/2/21 */ @Builder -@AllArgsConstructor public class InjectorMapping { @Singular("addInjector") private final Map> injectorMap; + public InjectorMapping(Map> injectorMap) { + this.injectorMap = new LinkedHashMap<>(injectorMap); + } + public Class getInjector(String type) { return injectorMap.get(type); } - public List getSupportedShellTypes() { - return new ArrayList<>(injectorMap.keySet()); + public Set getSupportedShellTypes() { + return Collections.unmodifiableSet(injectorMap.keySet()); } } \ No newline at end of file diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/JbossShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/JbossShell.java index d3c8f014..9da3481f 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/JbossShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/JbossShell.java @@ -1,26 +1,10 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.jboss.injector.JbossFilterInjector; -import com.reajason.javaweb.memshell.jboss.injector.JbossListenerInjector; -import com.reajason.javaweb.memshell.jboss.injector.JbossValveInjector; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordValve; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderValve; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.command.CommandValve; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaValve; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Valve; -import com.reajason.javaweb.memshell.tomcat.injector.TomcatContextValveAgentInjector; -import com.reajason.javaweb.memshell.tomcat.injector.TomcatFilterChainAgentInjector; +import com.reajason.javaweb.memshell.injector.jboss.JbossFilterInjector; +import com.reajason.javaweb.memshell.injector.jboss.JbossListenerInjector; +import com.reajason.javaweb.memshell.injector.jboss.JbossValveInjector; +import com.reajason.javaweb.memshell.injector.tomcat.TomcatContextValveAgentInjector; +import com.reajason.javaweb.memshell.injector.tomcat.TomcatFilterChainAgentInjector; import static com.reajason.javaweb.memshell.ShellType.*; @@ -30,6 +14,11 @@ import static com.reajason.javaweb.memshell.ShellType.*; */ public class JbossShell extends AbstractShell { + @Override + public Class getListenerInterceptor() { + return TomcatShell.ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -40,45 +29,4 @@ public class JbossShell extends AbstractShell { .addInjector(CATALINA_AGENT_CONTEXT_VALVE, TomcatContextValveAgentInjector.class) .build(); } - - @Override - protected void init() { - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Command)) - .addShellClass(VALVE, CommandValve.class) - .addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Godzilla)) - .addShellClass(VALVE, GodzillaValve.class) - .addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Behinder)) - .addShellClass(VALVE, BehinderValve.class) - .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Suo5)) - .addShellClass(VALVE, Suo5Valve.class) - .build()); - - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.AntSword)) - .addShellClass(VALVE, AntSwordValve.class) - .addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class) - .build()); - } } \ No newline at end of file diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/JettyShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/JettyShell.java index c7cac09f..8fb8f27a 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/JettyShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/JettyShell.java @@ -1,25 +1,9 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.jetty.antsword.AntSwordHandlerAdvisor; -import com.reajason.javaweb.memshell.jetty.behinder.BehinderHandlerAdvisor; -import com.reajason.javaweb.memshell.jetty.command.CommandHandlerAdvisor; -import com.reajason.javaweb.memshell.jetty.godzilla.GodzillaHandlerAdvisor; -import com.reajason.javaweb.memshell.jetty.injector.JettyFilterInjector; -import com.reajason.javaweb.memshell.jetty.injector.JettyHandlerAgentInjector; -import com.reajason.javaweb.memshell.jetty.injector.JettyListenerInjector; -import com.reajason.javaweb.memshell.jetty.injector.JettyServletInjector; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordServlet; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderServlet; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandServlet; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaServlet; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet; +import com.reajason.javaweb.memshell.injector.jetty.JettyFilterInjector; +import com.reajason.javaweb.memshell.injector.jetty.JettyHandlerAgentInjector; +import com.reajason.javaweb.memshell.injector.jetty.JettyListenerInjector; +import com.reajason.javaweb.memshell.injector.jetty.JettyServletInjector; import com.reajason.javaweb.memshell.utils.ShellCommonUtil; import net.bytebuddy.asm.Advice; import net.bytebuddy.implementation.bytecode.assign.Assigner; @@ -44,6 +28,11 @@ public class JettyShell extends AbstractShell { } } + @Override + public Class getListenerInterceptor() { + return ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -56,58 +45,4 @@ public class JettyShell extends AbstractShell { .addInjector(JETTY_AGENT_HANDLER, JettyHandlerAgentInjector.class) .build(); } - - @Override - protected void init() { - Class commandListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Command); - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(SERVLET, CommandServlet.class) - .addShellClass(JAKARTA_SERVLET, CommandServlet.class) - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(JAKARTA_FILTER, CommandFilter.class) - .addShellClass(LISTENER, commandListenerClass) - .addShellClass(JAKARTA_LISTENER, commandListenerClass) - .addShellClass(JETTY_AGENT_HANDLER, CommandHandlerAdvisor.class) - .build()); - - Class godzillaListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Godzilla); - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(SERVLET, GodzillaServlet.class) - .addShellClass(JAKARTA_SERVLET, GodzillaServlet.class) - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(JAKARTA_FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, godzillaListenerClass) - .addShellClass(JAKARTA_LISTENER, godzillaListenerClass) - .addShellClass(JETTY_AGENT_HANDLER, GodzillaHandlerAdvisor.class) - .build()); - - Class behinderListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Behinder); - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(SERVLET, BehinderServlet.class) - .addShellClass(JAKARTA_SERVLET, BehinderServlet.class) - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(JAKARTA_FILTER, BehinderFilter.class) - .addShellClass(LISTENER, behinderListenerClass) - .addShellClass(JAKARTA_LISTENER, behinderListenerClass) - .addShellClass(JETTY_AGENT_HANDLER, BehinderHandlerAdvisor.class) - .build()); - - Class suo5ListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Suo5); - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(SERVLET, Suo5Servlet.class) - .addShellClass(JAKARTA_SERVLET, Suo5Servlet.class) - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(JAKARTA_FILTER, Suo5Filter.class) - .addShellClass(LISTENER, suo5ListenerClass) - .addShellClass(JAKARTA_LISTENER, suo5ListenerClass) - .build()); - - Class antSwordListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.AntSword); - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(SERVLET, AntSwordServlet.class) - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, antSwordListenerClass) - .addShellClass(JETTY_AGENT_HANDLER, AntSwordHandlerAdvisor.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/ResinShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/ResinShell.java index 5e48f86d..238f96a6 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/ResinShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/ResinShell.java @@ -1,25 +1,9 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.resin.injector.ResinFilterChainAgentInjector; -import com.reajason.javaweb.memshell.resin.injector.ResinFilterInjector; -import com.reajason.javaweb.memshell.resin.injector.ResinListenerInjector; -import com.reajason.javaweb.memshell.resin.injector.ResinServletInjector; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordServlet; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderServlet; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.command.CommandServlet; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaServlet; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet; +import com.reajason.javaweb.memshell.injector.resin.ResinFilterChainAgentInjector; +import com.reajason.javaweb.memshell.injector.resin.ResinFilterInjector; +import com.reajason.javaweb.memshell.injector.resin.ResinListenerInjector; +import com.reajason.javaweb.memshell.injector.resin.ResinServletInjector; import com.reajason.javaweb.memshell.utils.ShellCommonUtil; import net.bytebuddy.asm.Advice; import net.bytebuddy.implementation.bytecode.assign.Assigner; @@ -39,6 +23,11 @@ public class ResinShell extends AbstractShell { } } + @Override + public Class getListenerInterceptor() { + return ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -48,41 +37,4 @@ public class ResinShell extends AbstractShell { .addInjector(AGENT_FILTER_CHAIN, ResinFilterChainAgentInjector.class) .build(); } - - @Override - protected void init() { - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(SERVLET, CommandServlet.class) - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Command)) - .addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(SERVLET, GodzillaServlet.class) - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Godzilla)) - .addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(SERVLET, BehinderServlet.class) - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Behinder)) - .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(SERVLET, Suo5Servlet.class) - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Suo5)) - .build()); - - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(SERVLET, AntSwordServlet.class) - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.AntSword)) - .addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/ServerToolRegistry.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/ServerToolRegistry.java index d8f03cb4..766fff7d 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/ServerToolRegistry.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/ServerToolRegistry.java @@ -1,12 +1,54 @@ package com.reajason.javaweb.memshell.server; +import com.reajason.javaweb.memshell.Server; +import com.reajason.javaweb.memshell.ShellTool; +import com.reajason.javaweb.memshell.ShellType; +import com.reajason.javaweb.memshell.generator.ListenerGenerator; +import com.reajason.javaweb.memshell.generator.ValveGenerator; + +import java.util.Map; +import java.util.Set; + /** * @author ReaJason * @since 2025/2/22 */ public class ServerToolRegistry { - public static void addToolMapping(){ + public static void addToolMapping(ShellTool shellTool, ToolMapping toolMapping) { + Map> rawToolMapping = toolMapping.getShellClassMap(); + for (Server value : Server.values()) { + AbstractShell shell = value.getShell(); + InjectorMapping shellInjectorMapping = shell.getShellInjectorMapping(); + Set injectorSupportedShellTypes = shellInjectorMapping.getSupportedShellTypes(); + ToolMapping.ToolMappingBuilder toolMappingBuilder = ToolMapping.builder(); + for (Map.Entry> entry : rawToolMapping.entrySet()) { + String shellType = entry.getKey(); + if (!injectorSupportedShellTypes.contains(shellType)) { + continue; + } + Class shellClass = entry.getValue(); + + if (ShellType.LISTENER.equals(shellType) || ShellType.JAKARTA_LISTENER.equals(shellType)) { + shellClass = ListenerGenerator.generateListenerShellClass(shell.getListenerInterceptor(), shellClass); + } + boolean isValve = (ShellType.VALVE.equals(shellType) || ShellType.JAKARTA_VALVE.equals(shellType)); + if (isValve && shell instanceof TongWeb6Shell) { + shellClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB6_VALVE_PACKAGE, shellClass); + } + + if (isValve && shell instanceof TongWeb7Shell) { + shellClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB7_VALVE_PACKAGE, shellClass); + } + + if (isValve && shell instanceof BesShell) { + shellClass = ValveGenerator.generateValveClass(ValveGenerator.BES_VALVE_PACKAGE, shellClass); + } + + toolMappingBuilder.addShellClass(shellType, shellClass); + } + shell.addToolMapping(shellTool, toolMappingBuilder.build()); + } } -} +} \ No newline at end of file diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/SpringWebFluxShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/SpringWebFluxShell.java index 937c6a26..424ba6fb 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/SpringWebFluxShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/SpringWebFluxShell.java @@ -1,19 +1,9 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.springwebflux.command.CommandHandlerFunction; -import com.reajason.javaweb.memshell.springwebflux.command.CommandHandlerMethod; -import com.reajason.javaweb.memshell.springwebflux.command.CommandNettyHandler; -import com.reajason.javaweb.memshell.springwebflux.command.CommandWebFilter; -import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaHandlerFunction; -import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaHandlerMethod; -import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaNettyHandler; -import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaWebFilter; import com.reajason.javaweb.memshell.springwebflux.injector.SpringWebFluxHandlerFunctionInjector; import com.reajason.javaweb.memshell.springwebflux.injector.SpringWebFluxHandlerMethodInjector; import com.reajason.javaweb.memshell.springwebflux.injector.SpringWebFluxNettyHandlerInjector; import com.reajason.javaweb.memshell.springwebflux.injector.SpringWebFluxWebFilterInjector; -import com.reajason.javaweb.memshell.springwebflux.suo5.Suo5WebFilter; import static com.reajason.javaweb.memshell.ShellType.*; @@ -32,25 +22,4 @@ public class SpringWebFluxShell extends AbstractShell { .addInjector(NETTY_HANDLER, SpringWebFluxNettyHandlerInjector.class) .build(); } - - @Override - protected void init() { - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(SPRING_WEBFLUX_WEB_FILTER, CommandWebFilter.class) - .addShellClass(SPRING_WEBFLUX_HANDLER_METHOD, CommandHandlerMethod.class) - .addShellClass(SPRING_WEBFLUX_HANDLER_FUNCTION, CommandHandlerFunction.class) - .addShellClass(NETTY_HANDLER, CommandNettyHandler.class) - .build()); - - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(SPRING_WEBFLUX_WEB_FILTER, GodzillaWebFilter.class) - .addShellClass(SPRING_WEBFLUX_HANDLER_METHOD, GodzillaHandlerMethod.class) - .addShellClass(SPRING_WEBFLUX_HANDLER_FUNCTION, GodzillaHandlerFunction.class) - .addShellClass(NETTY_HANDLER, GodzillaNettyHandler.class) - .build()); - - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(SPRING_WEBFLUX_WEB_FILTER, Suo5WebFilter.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/SpringWebMvcShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/SpringWebMvcShell.java index 3384feb9..f9e5ccb8 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/SpringWebMvcShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/SpringWebMvcShell.java @@ -1,23 +1,8 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordControllerHandler; -import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordInterceptor; -import com.reajason.javaweb.memshell.springwebmvc.antsword.AntSwordServletAdvisor; -import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderControllerHandler; -import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderInterceptor; -import com.reajason.javaweb.memshell.springwebmvc.behinder.BehinderServletAdvisor; -import com.reajason.javaweb.memshell.springwebmvc.command.CommandControllerHandler; -import com.reajason.javaweb.memshell.springwebmvc.command.CommandInterceptor; -import com.reajason.javaweb.memshell.springwebmvc.command.CommandServletAdvisor; -import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaControllerHandler; -import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaInterceptor; -import com.reajason.javaweb.memshell.springwebmvc.godzilla.GodzillaServletAdvisor; import com.reajason.javaweb.memshell.springwebmvc.injector.SpringWebMvcControllerHandlerInjector; import com.reajason.javaweb.memshell.springwebmvc.injector.SpringWebMvcFrameworkServletAgentInjector; import com.reajason.javaweb.memshell.springwebmvc.injector.SpringWebMvcInterceptorInjector; -import com.reajason.javaweb.memshell.springwebmvc.suo5.Suo5ControllerHandler; -import com.reajason.javaweb.memshell.springwebmvc.suo5.Suo5Interceptor; import static com.reajason.javaweb.memshell.ShellType.*; @@ -37,46 +22,4 @@ public class SpringWebMvcShell extends AbstractShell { .addInjector(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, SpringWebMvcFrameworkServletAgentInjector.class) .build(); } - - @Override - protected void init() { - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(SPRING_WEBMVC_INTERCEPTOR, CommandInterceptor.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, CommandInterceptor.class) - .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, CommandControllerHandler.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, CommandControllerHandler.class) - .addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, CommandServletAdvisor.class) - .build()); - - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(SPRING_WEBMVC_INTERCEPTOR, GodzillaInterceptor.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, GodzillaInterceptor.class) - .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, GodzillaControllerHandler.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, GodzillaControllerHandler.class) - .addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, GodzillaServletAdvisor.class) - .build()); - - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(SPRING_WEBMVC_INTERCEPTOR, BehinderInterceptor.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, BehinderInterceptor.class) - .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, BehinderControllerHandler.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, BehinderControllerHandler.class) - .addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, BehinderServletAdvisor.class) - .build()); - - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(SPRING_WEBMVC_INTERCEPTOR, Suo5Interceptor.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, Suo5Interceptor.class) - .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, Suo5ControllerHandler.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, Suo5ControllerHandler.class) - .build()); - - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(SPRING_WEBMVC_INTERCEPTOR, AntSwordInterceptor.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_INTERCEPTOR, AntSwordInterceptor.class) - .addShellClass(SPRING_WEBMVC_CONTROLLER_HANDLER, AntSwordControllerHandler.class) - .addShellClass(SPRING_WEBMVC_JAKARTA_CONTROLLER_HANDLER, AntSwordControllerHandler.class) - .addShellClass(SPRING_WEBMVC_AGENT_FRAMEWORK_SERVLET, AntSwordServletAdvisor.class) - .build()); - } } \ No newline at end of file diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/TomcatShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/TomcatShell.java index 9083d931..5d5e19fe 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/TomcatShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/TomcatShell.java @@ -1,24 +1,6 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordServlet; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordValve; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderServlet; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderValve; -import com.reajason.javaweb.memshell.shelltool.command.*; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaServlet; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaValve; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Valve; -import com.reajason.javaweb.memshell.tomcat.injector.*; +import com.reajason.javaweb.memshell.injector.tomcat.*; import com.reajason.javaweb.memshell.utils.ShellCommonUtil; import net.bytebuddy.asm.Advice; import net.bytebuddy.implementation.bytecode.assign.Assigner; @@ -43,6 +25,11 @@ public class TomcatShell extends AbstractShell { } } + @Override + public Class getListenerInterceptor() { + return ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -59,72 +46,4 @@ public class TomcatShell extends AbstractShell { .addInjector(WEBSOCKET, TomcatWebSocketInjector.class) .build(); } - - @Override - protected void init() { - Class commandListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Command); - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(SERVLET, CommandServlet.class) - .addShellClass(JAKARTA_SERVLET, CommandServlet.class) - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(JAKARTA_FILTER, CommandFilter.class) - .addShellClass(LISTENER, commandListenerClass) - .addShellClass(JAKARTA_LISTENER, commandListenerClass) - .addShellClass(VALVE, CommandValve.class) - .addShellClass(JAKARTA_VALVE, CommandValve.class) - .addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class) - .addShellClass(WEBSOCKET, CommandWebSocket.class) - .build()); - - Class godzillaListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Godzilla); - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(SERVLET, GodzillaServlet.class) - .addShellClass(JAKARTA_SERVLET, GodzillaServlet.class) - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(JAKARTA_FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, godzillaListenerClass) - .addShellClass(JAKARTA_LISTENER, godzillaListenerClass) - .addShellClass(VALVE, GodzillaValve.class) - .addShellClass(JAKARTA_VALVE, GodzillaValve.class) - .addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class) - .build()); - - Class behinderListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Behinder); - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(SERVLET, BehinderServlet.class) - .addShellClass(JAKARTA_SERVLET, BehinderServlet.class) - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(JAKARTA_FILTER, BehinderFilter.class) - .addShellClass(LISTENER, behinderListenerClass) - .addShellClass(JAKARTA_LISTENER, behinderListenerClass) - .addShellClass(VALVE, BehinderValve.class) - .addShellClass(JAKARTA_VALVE, BehinderValve.class) - .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class) - .build()); - - Class suo5ListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Suo5); - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(SERVLET, Suo5Servlet.class) - .addShellClass(JAKARTA_SERVLET, Suo5Servlet.class) - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(JAKARTA_FILTER, Suo5Filter.class) - .addShellClass(LISTENER, suo5ListenerClass) - .addShellClass(JAKARTA_LISTENER, suo5ListenerClass) - .addShellClass(VALVE, Suo5Valve.class) - .addShellClass(JAKARTA_VALVE, Suo5Valve.class) - .build()); - - Class antSwordListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.AntSword); - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(SERVLET, AntSwordServlet.class) - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, antSwordListenerClass) - .addShellClass(VALVE, AntSwordValve.class) - .addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class) - .build()); - } } \ No newline at end of file diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/TongWeb6Shell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/TongWeb6Shell.java index 789c5c10..7ec87af8 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/TongWeb6Shell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/TongWeb6Shell.java @@ -1,18 +1,6 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.generator.ValveGenerator; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.tongweb.injector.*; +import com.reajason.javaweb.memshell.injector.tongweb.*; import static com.reajason.javaweb.memshell.ShellType.*; @@ -22,6 +10,11 @@ import static com.reajason.javaweb.memshell.ShellType.*; */ public class TongWeb6Shell extends AbstractShell { + @Override + public Class getListenerInterceptor() { + return TomcatShell.ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -35,68 +28,4 @@ public class TongWeb6Shell extends AbstractShell { .addInjector(CATALINA_AGENT_CONTEXT_VALVE, TongWebContextValveAgentInjector.class) .build(); } - - @Override - protected void init() { - - Class commandListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Command); - Class commandValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB6_VALVE_PACKAGE, ShellTool.Command); - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(JAKARTA_FILTER, CommandFilter.class) - .addShellClass(LISTENER, commandListenerClass) - .addShellClass(JAKARTA_LISTENER, commandListenerClass) - .addShellClass(VALVE, commandValveClass) - .addShellClass(JAKARTA_VALVE, commandValveClass) - .addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class) - .build()); - - Class godzillaListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Godzilla); - Class godzillaValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB6_VALVE_PACKAGE, ShellTool.Godzilla); - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(JAKARTA_FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, godzillaListenerClass) - .addShellClass(JAKARTA_LISTENER, godzillaListenerClass) - .addShellClass(VALVE, godzillaValveClass) - .addShellClass(JAKARTA_VALVE, godzillaValveClass) - .addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class) - .build()); - - Class behinderListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Behinder); - Class behinderValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB6_VALVE_PACKAGE, ShellTool.Behinder); - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(JAKARTA_FILTER, BehinderFilter.class) - .addShellClass(LISTENER, behinderListenerClass) - .addShellClass(JAKARTA_LISTENER, behinderListenerClass) - .addShellClass(VALVE, behinderValveClass) - .addShellClass(JAKARTA_VALVE, behinderValveClass) - .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class) - .build()); - - Class suo5ListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Suo5); - Class suo5ValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB6_VALVE_PACKAGE, ShellTool.Suo5); - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(JAKARTA_FILTER, Suo5Filter.class) - .addShellClass(LISTENER, suo5ListenerClass) - .addShellClass(JAKARTA_LISTENER, suo5ListenerClass) - .addShellClass(VALVE, suo5ValveClass) - .addShellClass(JAKARTA_VALVE, suo5ValveClass) - .build()); - - Class antSwordListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.AntSword); - Class antSwordValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB6_VALVE_PACKAGE, ShellTool.AntSword); - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, antSwordListenerClass) - .addShellClass(VALVE, antSwordValveClass) - .addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/TongWeb7Shell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/TongWeb7Shell.java index 6a9c83ca..2831ccd5 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/TongWeb7Shell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/TongWeb7Shell.java @@ -1,18 +1,6 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.generator.ValveGenerator; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.tongweb.injector.*; +import com.reajason.javaweb.memshell.injector.tongweb.*; import static com.reajason.javaweb.memshell.ShellType.*; @@ -22,6 +10,11 @@ import static com.reajason.javaweb.memshell.ShellType.*; */ public class TongWeb7Shell extends AbstractShell { + @Override + public Class getListenerInterceptor() { + return TomcatShell.ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -35,68 +28,4 @@ public class TongWeb7Shell extends AbstractShell { .addInjector(CATALINA_AGENT_CONTEXT_VALVE, TongWebContextValveAgentInjector.class) .build(); } - - @Override - protected void init() { - - Class commandListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Command); - Class commandValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB7_VALVE_PACKAGE, ShellTool.Command); - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(JAKARTA_FILTER, CommandFilter.class) - .addShellClass(LISTENER, commandListenerClass) - .addShellClass(JAKARTA_LISTENER, commandListenerClass) - .addShellClass(VALVE, commandValveClass) - .addShellClass(JAKARTA_VALVE, commandValveClass) - .addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, CommandFilterChainAdvisor.class) - .build()); - - Class godzillaListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Godzilla); - Class godzillaValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB7_VALVE_PACKAGE, ShellTool.Godzilla); - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(JAKARTA_FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, godzillaListenerClass) - .addShellClass(JAKARTA_LISTENER, godzillaListenerClass) - .addShellClass(VALVE, godzillaValveClass) - .addShellClass(JAKARTA_VALVE, godzillaValveClass) - .addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, GodzillaFilterChainAdvisor.class) - .build()); - - Class behinderListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Behinder); - Class behinderValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB7_VALVE_PACKAGE, ShellTool.Behinder); - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(JAKARTA_FILTER, BehinderFilter.class) - .addShellClass(LISTENER, behinderListenerClass) - .addShellClass(JAKARTA_LISTENER, behinderListenerClass) - .addShellClass(VALVE, behinderValveClass) - .addShellClass(JAKARTA_VALVE, behinderValveClass) - .addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, BehinderFilterChainAdvisor.class) - .build()); - - Class suo5ListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Suo5); - Class suo5ValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB7_VALVE_PACKAGE, ShellTool.Suo5); - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(JAKARTA_FILTER, Suo5Filter.class) - .addShellClass(LISTENER, suo5ListenerClass) - .addShellClass(JAKARTA_LISTENER, suo5ListenerClass) - .addShellClass(VALVE, suo5ValveClass) - .addShellClass(JAKARTA_VALVE, suo5ValveClass) - .build()); - - Class antSwordListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.AntSword); - Class antSwordValveClass = ValveGenerator.generateValveClass(ValveGenerator.TONGWEB7_VALVE_PACKAGE, ShellTool.Command); - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, antSwordListenerClass) - .addShellClass(VALVE, antSwordValveClass) - .addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class) - .addShellClass(CATALINA_AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/ToolMapping.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/ToolMapping.java index 938b98cb..cea48fb1 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/ToolMapping.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/ToolMapping.java @@ -1,26 +1,31 @@ package com.reajason.javaweb.memshell.server; import lombok.Builder; +import lombok.Getter; import lombok.Singular; import org.apache.commons.lang3.tuple.Pair; -import java.util.ArrayList; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; +import java.util.Set; /** * @author ReaJason * @since 2025/2/21 */ @Builder +@Getter public class ToolMapping { @Singular("addShellClass") private final Map> shellClassMap; - public List getSupportedShellTypes() { - return new ArrayList<>(shellClassMap.keySet()); + public ToolMapping(Map> shellClassMap) { + this.shellClassMap = new LinkedHashMap<>(shellClassMap); + } + + public Set getSupportedShellTypes() { + return shellClassMap.keySet(); } public Map, Class>> getShellClassMap(InjectorMapping injectorMapping) { diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/UndertowShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/UndertowShell.java index e3c20875..48f7ea23 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/UndertowShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/UndertowShell.java @@ -1,25 +1,9 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordServlet; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderServlet; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandServlet; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaServlet; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet; -import com.reajason.javaweb.memshell.undertow.antsword.AntSwordServletInitialHandlerAdvisor; -import com.reajason.javaweb.memshell.undertow.behinder.BehinderServletInitialHandlerAdvisor; -import com.reajason.javaweb.memshell.undertow.command.CommandServletInitialHandlerAdvisor; -import com.reajason.javaweb.memshell.undertow.godzilla.GodzillaServletInitialHandlerAdvisor; -import com.reajason.javaweb.memshell.undertow.injector.UndertowFilterInjector; -import com.reajason.javaweb.memshell.undertow.injector.UndertowListenerInjector; -import com.reajason.javaweb.memshell.undertow.injector.UndertowServletInitialHandlerAgentInjector; -import com.reajason.javaweb.memshell.undertow.injector.UndertowServletInjector; +import com.reajason.javaweb.memshell.injector.undertow.UndertowFilterInjector; +import com.reajason.javaweb.memshell.injector.undertow.UndertowListenerInjector; +import com.reajason.javaweb.memshell.injector.undertow.UndertowServletInitialHandlerAgentInjector; +import com.reajason.javaweb.memshell.injector.undertow.UndertowServletInjector; import com.reajason.javaweb.memshell.utils.ShellCommonUtil; import net.bytebuddy.asm.Advice; import net.bytebuddy.implementation.bytecode.assign.Assigner; @@ -49,6 +33,11 @@ public class UndertowShell extends AbstractShell { } } + @Override + public Class getListenerInterceptor() { + return ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -61,58 +50,4 @@ public class UndertowShell extends AbstractShell { .addInjector(UNDERTOW_AGENT_SERVLET_HANDLER, UndertowServletInitialHandlerAgentInjector.class) .build(); } - - @Override - protected void init() { - Class commandListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Command); - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(SERVLET, CommandServlet.class) - .addShellClass(JAKARTA_SERVLET, CommandServlet.class) - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(JAKARTA_FILTER, CommandFilter.class) - .addShellClass(LISTENER, commandListenerClass) - .addShellClass(JAKARTA_LISTENER, commandListenerClass) - .addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, CommandServletInitialHandlerAdvisor.class) - .build()); - - Class godzillaListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Godzilla); - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(SERVLET, GodzillaServlet.class) - .addShellClass(JAKARTA_SERVLET, GodzillaServlet.class) - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(JAKARTA_FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, godzillaListenerClass) - .addShellClass(JAKARTA_LISTENER, godzillaListenerClass) - .addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, GodzillaServletInitialHandlerAdvisor.class) - .build()); - - Class behinderListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Behinder); - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(SERVLET, BehinderServlet.class) - .addShellClass(JAKARTA_SERVLET, BehinderServlet.class) - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(JAKARTA_FILTER, BehinderFilter.class) - .addShellClass(LISTENER, behinderListenerClass) - .addShellClass(JAKARTA_LISTENER, behinderListenerClass) - .addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, BehinderServletInitialHandlerAdvisor.class) - .build()); - - Class suo5ListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Suo5); - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(SERVLET, Suo5Servlet.class) - .addShellClass(JAKARTA_SERVLET, Suo5Servlet.class) - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(JAKARTA_FILTER, Suo5Filter.class) - .addShellClass(LISTENER, suo5ListenerClass) - .addShellClass(JAKARTA_LISTENER, suo5ListenerClass) - .build()); - - Class antSwordListenerClass = ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.AntSword); - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(SERVLET, AntSwordServlet.class) - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, antSwordListenerClass) - .addShellClass(UNDERTOW_AGENT_SERVLET_HANDLER, AntSwordServletInitialHandlerAdvisor.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/WebLogicShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/WebLogicShell.java index e19dafa9..36aaa4e8 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/WebLogicShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/WebLogicShell.java @@ -1,25 +1,9 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordServlet; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderServlet; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.command.CommandServlet; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaServlet; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet; -import com.reajason.javaweb.memshell.weblogic.injector.WebLogicFilterInjector; -import com.reajason.javaweb.memshell.weblogic.injector.WebLogicListenerInjector; -import com.reajason.javaweb.memshell.weblogic.injector.WebLogicServletContextAgentInjector; -import com.reajason.javaweb.memshell.weblogic.injector.WebLogicServletInjector; +import com.reajason.javaweb.memshell.injector.weblogic.WebLogicFilterInjector; +import com.reajason.javaweb.memshell.injector.weblogic.WebLogicListenerInjector; +import com.reajason.javaweb.memshell.injector.weblogic.WebLogicServletContextAgentInjector; +import com.reajason.javaweb.memshell.injector.weblogic.WebLogicServletInjector; import static com.reajason.javaweb.memshell.ShellType.*; @@ -29,6 +13,11 @@ import static com.reajason.javaweb.memshell.ShellType.*; */ public class WebLogicShell extends AbstractShell { + @Override + public Class getListenerInterceptor() { + return TomcatShell.ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -38,41 +27,4 @@ public class WebLogicShell extends AbstractShell { .addInjector(WEBLOGIC_AGENT_SERVLET_CONTEXT, WebLogicServletContextAgentInjector.class) .build(); } - - @Override - protected void init() { - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(SERVLET, CommandServlet.class) - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Command)) - .addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, CommandFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(SERVLET, GodzillaServlet.class) - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Godzilla)) - .addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, GodzillaFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(SERVLET, BehinderServlet.class) - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Behinder)) - .addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, BehinderFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(SERVLET, Suo5Servlet.class) - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.Suo5)) - .build()); - - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(SERVLET, AntSwordServlet.class) - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(TomcatShell.ListenerInterceptor.class, ShellTool.AntSword)) - .addShellClass(WEBLOGIC_AGENT_SERVLET_CONTEXT, AntSwordFilterChainAdvisor.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/WebSphereShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/WebSphereShell.java index 2b9fb56b..c198092f 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/WebSphereShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/WebSphereShell.java @@ -1,26 +1,10 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.generator.ListenerGenerator; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilter; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordServlet; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilter; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.behinder.BehinderServlet; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilter; -import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.command.CommandServlet; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilter; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaFilterChainAdvisor; -import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaServlet; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Filter; -import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Servlet; +import com.reajason.javaweb.memshell.injector.websphere.WebSphereFilterChainAgentInjector; +import com.reajason.javaweb.memshell.injector.websphere.WebSphereFilterInjector; +import com.reajason.javaweb.memshell.injector.websphere.WebSphereListenerInjector; +import com.reajason.javaweb.memshell.injector.websphere.WebSphereServletInjector; import com.reajason.javaweb.memshell.utils.ShellCommonUtil; -import com.reajason.javaweb.memshell.websphere.injector.WebSphereFilterChainAgentInjector; -import com.reajason.javaweb.memshell.websphere.injector.WebSphereFilterInjector; -import com.reajason.javaweb.memshell.websphere.injector.WebSphereListenerInjector; -import com.reajason.javaweb.memshell.websphere.injector.WebSphereServletInjector; import net.bytebuddy.asm.Advice; import net.bytebuddy.implementation.bytecode.assign.Assigner; @@ -40,6 +24,11 @@ public class WebSphereShell extends AbstractShell { } } + @Override + public Class getListenerInterceptor() { + return ListenerInterceptor.class; + } + @Override protected InjectorMapping getShellInjectorMapping() { return InjectorMapping.builder() @@ -49,41 +38,4 @@ public class WebSphereShell extends AbstractShell { .addInjector(WAS_AGENT_FILTER_MANAGER, WebSphereFilterChainAgentInjector.class) .build(); } - - @Override - protected void init() { - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(SERVLET, CommandServlet.class) - .addShellClass(FILTER, CommandFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Command)) - .addShellClass(WAS_AGENT_FILTER_MANAGER, CommandFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(SERVLET, GodzillaServlet.class) - .addShellClass(FILTER, GodzillaFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Godzilla)) - .addShellClass(WAS_AGENT_FILTER_MANAGER, GodzillaFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Behinder, ToolMapping.builder() - .addShellClass(SERVLET, BehinderServlet.class) - .addShellClass(FILTER, BehinderFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Behinder)) - .addShellClass(WAS_AGENT_FILTER_MANAGER, BehinderFilterChainAdvisor.class) - .build()); - - addToolMapping(ShellTool.Suo5, ToolMapping.builder() - .addShellClass(SERVLET, Suo5Servlet.class) - .addShellClass(FILTER, Suo5Filter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.Suo5)) - .build()); - - addToolMapping(ShellTool.AntSword, ToolMapping.builder() - .addShellClass(SERVLET, AntSwordServlet.class) - .addShellClass(FILTER, AntSwordFilter.class) - .addShellClass(LISTENER, ListenerGenerator.generateListenerShellClass(ListenerInterceptor.class, ShellTool.AntSword)) - .addShellClass(WAS_AGENT_FILTER_MANAGER, AntSwordFilterChainAdvisor.class) - .build()); - } } diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/server/XxlJobShell.java b/generator/src/main/java/com/reajason/javaweb/memshell/server/XxlJobShell.java index 67f6f320..822fbc7e 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/server/XxlJobShell.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/server/XxlJobShell.java @@ -1,16 +1,14 @@ package com.reajason.javaweb.memshell.server; -import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.springwebflux.command.CommandNettyHandler; -import com.reajason.javaweb.memshell.springwebflux.godzilla.GodzillaNettyHandler; import com.reajason.javaweb.memshell.xxljob.injector.XxlJobNettyHandlerInjector; +import static com.reajason.javaweb.memshell.ShellType.NETTY_HANDLER; + /** * @author ReaJason * @since 2025/1/21 */ public class XxlJobShell extends AbstractShell { - public static final String NETTY_HANDLER = "NettyHandler"; @Override protected InjectorMapping getShellInjectorMapping() { @@ -18,13 +16,4 @@ public class XxlJobShell extends AbstractShell { .addInjector(NETTY_HANDLER, XxlJobNettyHandlerInjector.class) .build(); } - - @Override - protected void init() { - addToolMapping(ShellTool.Command, ToolMapping.builder() - .addShellClass(NETTY_HANDLER, CommandNettyHandler.class).build()); - - addToolMapping(ShellTool.Godzilla, ToolMapping.builder() - .addShellClass(NETTY_HANDLER, GodzillaNettyHandler.class).build()); - } } diff --git a/generator/src/test/java/com/reajason/javaweb/memshell/GeneratorMainTest.java b/generator/src/test/java/com/reajason/javaweb/memshell/GeneratorMainTest.java new file mode 100644 index 00000000..36a500ad --- /dev/null +++ b/generator/src/test/java/com/reajason/javaweb/memshell/GeneratorMainTest.java @@ -0,0 +1,57 @@ +package com.reajason.javaweb.memshell; + +import com.reajason.javaweb.memshell.config.*; +import lombok.SneakyThrows; +import net.bytebuddy.jar.asm.Opcodes; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; + +/** + * @author ReaJason + * @since 2025/2/22 + */ +class GeneratorMainTest { + + @Test + @SneakyThrows + @Disabled + void test() { + ShellConfig shellConfig = ShellConfig.builder() + .server(Server.Apusic) + .shellTool(ShellTool.Behinder) + .shellType(ShellType.LISTENER) + .targetJreVersion(Opcodes.V1_8) + .debug(true) + .build(); + GodzillaConfig godzillaConfig = GodzillaConfig.builder() + .pass("pass") + .key("key") + .headerName("User-Agent") + .headerValue("test123").build(); + CommandConfig commandConfig = CommandConfig.builder().paramName("listener").build(); + + BehinderConfig behinderConfig = BehinderConfig.builder() + .pass("test123") + .headerName("User-Agent") + .headerValue("test").build(); + + Suo5Config suo5Config = Suo5Config.builder() + .headerName("User-Agent") + .headerValue("test").build(); + + InjectorConfig injectorConfig = new InjectorConfig(); + + GenerateResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, behinderConfig); + if (generateResult != null) { + Files.write(Paths.get(generateResult.getInjectorClassName() + ".class"), generateResult.getInjectorBytes(), StandardOpenOption.CREATE_NEW); + Files.write(Paths.get(generateResult.getShellClassName() + ".class"), generateResult.getShellBytes(), StandardOpenOption.CREATE_NEW); +// System.out.println(Base64.encodeBase64String(generateResult.getInjectorBytes())); +// System.out.println(Packers.ScriptEngine.getInstance().pack(generateResult)); +// Files.write(Path.of("target.jar"), Packer.INSTANCE.AgentJar.getPacker().packBytes(generateResult)); + } + } +} \ No newline at end of file diff --git a/generator/src/test/java/com/reajason/javaweb/memshell/generator/ValveGeneratorTest.java b/generator/src/test/java/com/reajason/javaweb/memshell/generator/ValveGeneratorTest.java index dfeb67a0..093296e2 100644 --- a/generator/src/test/java/com/reajason/javaweb/memshell/generator/ValveGeneratorTest.java +++ b/generator/src/test/java/com/reajason/javaweb/memshell/generator/ValveGeneratorTest.java @@ -1,6 +1,7 @@ package com.reajason.javaweb.memshell.generator; import com.reajason.javaweb.memshell.ShellTool; +import com.reajason.javaweb.memshell.shelltool.command.CommandValve; import net.bytebuddy.jar.asm.ClassReader; import net.bytebuddy.jar.asm.ClassVisitor; import net.bytebuddy.jar.asm.Opcodes; @@ -18,7 +19,7 @@ class ValveGeneratorTest { @Test void test() throws Exception { - Class clazz = ValveGenerator.generateValveClass(ValveGenerator.BES_VALVE_PACKAGE, ShellTool.Command); + Class clazz = ValveGenerator.generateValveClass(ValveGenerator.BES_VALVE_PACKAGE, CommandValve.class); InputStream resourceAsStream = clazz.getClassLoader().getResourceAsStream(clazz.getName().replace('.', '/') + ".class"); assert resourceAsStream != null; ClassReader cr = new ClassReader(resourceAsStream); diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/ShellAssertionTool.java b/integration-test/src/test/java/com/reajason/javaweb/integration/ShellAssertionTool.java index 6c387794..a04e0b1d 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/ShellAssertionTool.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/ShellAssertionTool.java @@ -1,7 +1,7 @@ package com.reajason.javaweb.integration; import com.reajason.javaweb.memshell.ShellType; -import com.reajason.javaweb.memshell.GeneratorMain; +import com.reajason.javaweb.memshell.MemShellGenerator; import com.reajason.javaweb.antsword.AntSwordManager; import com.reajason.javaweb.behinder.BehinderManager; import com.reajason.javaweb.godzilla.GodzillaManager; @@ -210,7 +210,7 @@ public class ShellAssertionTool { log.info("generated {} antSword with pass: {}, headerValue: {}", shellType, antPassword, uniqueName); break; } - return GeneratorMain.generate(shellConfig, injectorConfig, shellToolConfig); + return MemShellGenerator.generate(shellConfig, injectorConfig, shellToolConfig); } public static void assertInjectIsOk(String url, String shellType, ShellTool shellTool, String content, Packers packer, GenericContainer container) { diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob220ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob220ContainerTest.java index be53dadb..8076d6a8 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob220ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob220ContainerTest.java @@ -1,9 +1,9 @@ package com.reajason.javaweb.integration.xxljob; -import com.reajason.javaweb.memshell.server.XxlJobShell; +import com.reajason.javaweb.memshell.Packers; import com.reajason.javaweb.memshell.Server; import com.reajason.javaweb.memshell.ShellTool; -import com.reajason.javaweb.memshell.Packers; +import com.reajason.javaweb.memshell.ShellType; import lombok.extern.slf4j.Slf4j; import net.bytebuddy.jar.asm.Opcodes; import org.junit.jupiter.api.AfterAll; @@ -39,8 +39,8 @@ public class XxlJob220ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Command, Packers.XxlJob), - arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Godzilla, Packers.XxlJob) + arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Command, Packers.XxlJob), + arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Godzilla, Packers.XxlJob) ); } diff --git a/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob230ContainerTest.java b/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob230ContainerTest.java index 62894df3..1d233837 100644 --- a/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob230ContainerTest.java +++ b/integration-test/src/test/java/com/reajason/javaweb/integration/xxljob/XxlJob230ContainerTest.java @@ -1,5 +1,6 @@ package com.reajason.javaweb.integration.xxljob; +import com.reajason.javaweb.memshell.ShellType; import com.reajason.javaweb.memshell.server.XxlJobShell; import com.reajason.javaweb.memshell.Server; import com.reajason.javaweb.memshell.ShellTool; @@ -39,8 +40,8 @@ public class XxlJob230ContainerTest { static Stream casesProvider() { return Stream.of( - arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Command, Packers.XxlJob), - arguments(imageName, XxlJobShell.NETTY_HANDLER, ShellTool.Godzilla, Packers.XxlJob) + arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Command, Packers.XxlJob), + arguments(imageName, ShellType.NETTY_HANDLER, ShellTool.Godzilla, Packers.XxlJob) ); } diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/apusic/injector/ApusicFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/apusic/injector/ApusicFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicFilterInjector.java index 862b2b40..5f6c75a9 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/apusic/injector/ApusicFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.apusic.injector; +package com.reajason.javaweb.memshell.injector.apusic; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/apusic/injector/ApusicListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/apusic/injector/ApusicListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicListenerInjector.java index ea13e9c7..d73d75c7 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/apusic/injector/ApusicListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.apusic.injector; +package com.reajason.javaweb.memshell.injector.apusic; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/apusic/injector/ApusicServletInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicServletInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/apusic/injector/ApusicServletInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicServletInjector.java index 05ed22f2..bd92da6b 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/apusic/injector/ApusicServletInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/apusic/ApusicServletInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.apusic.injector; +package com.reajason.javaweb.memshell.injector.apusic; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesContextValveAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesContextValveAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesContextValveAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesContextValveAgentInjector.java index 8079c591..b04e1598 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesContextValveAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesContextValveAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.bes.injector; +package com.reajason.javaweb.memshell.injector.bes; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesFilterChainAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterChainAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesFilterChainAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterChainAgentInjector.java index 3bed0844..02756824 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesFilterChainAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterChainAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.bes.injector; +package com.reajason.javaweb.memshell.injector.bes; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterInjector.java index 1b178df5..a9a55d63 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.bes.injector; +package com.reajason.javaweb.memshell.injector.bes; import javax.servlet.Filter; import java.io.ByteArrayInputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesListenerInjector.java index 6eda57da..c41581e4 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.bes.injector; +package com.reajason.javaweb.memshell.injector.bes; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesValveInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesValveInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesValveInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesValveInjector.java index 0e971340..ebe52605 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/bes/injector/BesValveInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/bes/BesValveInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.bes.injector; +package com.reajason.javaweb.memshell.injector.bes; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/glassfish/injector/GlassFishFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/glassfish/injector/GlassFishFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishFilterInjector.java index a3e7d7ab..d4acfea2 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/glassfish/injector/GlassFishFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.glassfish.injector; +package com.reajason.javaweb.memshell.injector.glassfish; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/glassfish/injector/GlassFishListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/glassfish/injector/GlassFishListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishListenerInjector.java index a4cc9aa5..438c7ec1 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/glassfish/injector/GlassFishListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.glassfish.injector; +package com.reajason.javaweb.memshell.injector.glassfish; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/glassfish/injector/GlassFishValveInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishValveInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/glassfish/injector/GlassFishValveInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishValveInjector.java index 7dbb464d..94304f4c 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/glassfish/injector/GlassFishValveInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/glassfish/GlassFishValveInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.glassfish.injector; +package com.reajason.javaweb.memshell.injector.glassfish; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/inforsuite/injector/InforSuiteFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/inforsuite/InforSuiteFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/inforsuite/injector/InforSuiteFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/inforsuite/InforSuiteFilterInjector.java index 4ab90c50..c12f5f5b 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/inforsuite/injector/InforSuiteFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/inforsuite/InforSuiteFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.inforsuite.injector; +package com.reajason.javaweb.memshell.injector.inforsuite; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jboss/injector/JbossFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jboss/JbossFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jboss/injector/JbossFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/jboss/JbossFilterInjector.java index e41c8bb2..31d84737 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jboss/injector/JbossFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jboss/JbossFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jboss.injector; +package com.reajason.javaweb.memshell.injector.jboss; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jboss/injector/JbossListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jboss/JbossListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jboss/injector/JbossListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/jboss/JbossListenerInjector.java index 6bc53a24..9e8f6f16 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jboss/injector/JbossListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jboss/JbossListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jboss.injector; +package com.reajason.javaweb.memshell.injector.jboss; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jboss/injector/JbossValveInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jboss/JbossValveInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jboss/injector/JbossValveInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/jboss/JbossValveInjector.java index 1889d606..23c75759 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jboss/injector/JbossValveInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jboss/JbossValveInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jboss.injector; +package com.reajason.javaweb.memshell.injector.jboss; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyFilterInjector.java index 213d189e..fc26dd5f 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jetty.injector; +package com.reajason.javaweb.memshell.injector.jetty; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyHandlerAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyHandlerAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyHandlerAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyHandlerAgentInjector.java index 5a29e2da..9b133b0d 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyHandlerAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyHandlerAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jetty.injector; +package com.reajason.javaweb.memshell.injector.jetty; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyListenerInjector.java index 9593d4a3..3b066a3a 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jetty.injector; +package com.reajason.javaweb.memshell.injector.jetty; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyServletInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyServletInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyServletInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyServletInjector.java index e1b93a31..5a8c8993 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/injector/JettyServletInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/jetty/JettyServletInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jetty.injector; +package com.reajason.javaweb.memshell.injector.jetty; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinFilterChainAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterChainAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinFilterChainAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterChainAgentInjector.java index c49bcb90..86f1b33d 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinFilterChainAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterChainAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.resin.injector; +package com.reajason.javaweb.memshell.injector.resin; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterInjector.java index 4999fbb5..35aee5e1 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.resin.injector; +package com.reajason.javaweb.memshell.injector.resin; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinListenerInjector.java index c7d52439..d005defa 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.resin.injector; +package com.reajason.javaweb.memshell.injector.resin; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinServletInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinServletInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinServletInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinServletInjector.java index 1e3a0129..e4cc1ab7 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/resin/injector/ResinServletInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/resin/ResinServletInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.resin.injector; +package com.reajason.javaweb.memshell.injector.resin; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatContextValveAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatContextValveAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatContextValveAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatContextValveAgentInjector.java index d38977a6..d0dec165 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatContextValveAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatContextValveAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tomcat.injector; +package com.reajason.javaweb.memshell.injector.tomcat; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatFilterChainAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterChainAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatFilterChainAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterChainAgentInjector.java index 1e91cdaa..c772ef9a 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatFilterChainAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterChainAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tomcat.injector; +package com.reajason.javaweb.memshell.injector.tomcat; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java index 34eab5ca..0f5ea06b 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tomcat.injector; +package com.reajason.javaweb.memshell.injector.tomcat; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java index 2b0239fc..d47cd7d0 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tomcat.injector; +package com.reajason.javaweb.memshell.injector.tomcat; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatServletInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatServletInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java index f3252d70..9281e8e2 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatServletInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tomcat.injector; +package com.reajason.javaweb.memshell.injector.tomcat; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatValveInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatValveInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java index a6d13a44..47abbcfc 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatValveInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tomcat.injector; +package com.reajason.javaweb.memshell.injector.tomcat; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatWebSocketInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatWebSocketInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java index 18b3d0da..4b7b8287 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tomcat/injector/TomcatWebSocketInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tomcat.injector; +package com.reajason.javaweb.memshell.injector.tomcat; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebContextValveAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebContextValveAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebContextValveAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebContextValveAgentInjector.java index d33e0734..df0c5918 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebContextValveAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebContextValveAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tongweb.injector; +package com.reajason.javaweb.memshell.injector.tongweb; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebFilterChainAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterChainAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebFilterChainAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterChainAgentInjector.java index 140dea65..c6389fda 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebFilterChainAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterChainAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tongweb.injector; +package com.reajason.javaweb.memshell.injector.tongweb; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterInjector.java index d7695002..c355e42b 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tongweb.injector; +package com.reajason.javaweb.memshell.injector.tongweb; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebListenerInjector.java index e3064cfe..370534db 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tongweb.injector; +package com.reajason.javaweb.memshell.injector.tongweb; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebValveInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebValveInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebValveInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebValveInjector.java index 9cb0da12..5ffd17a7 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/tongweb/injector/TongWebValveInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/tongweb/TongWebValveInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.tongweb.injector; +package com.reajason.javaweb.memshell.injector.tongweb; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowFilterInjector.java index d8eb3bc8..7d3734d7 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.undertow.injector; +package com.reajason.javaweb.memshell.injector.undertow; import javax.servlet.DispatcherType; import java.io.ByteArrayInputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowListenerInjector.java index d7bc90af..482825d3 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.undertow.injector; +package com.reajason.javaweb.memshell.injector.undertow; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowServletInitialHandlerAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInitialHandlerAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowServletInitialHandlerAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInitialHandlerAgentInjector.java index 34782adb..ec7a5751 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowServletInitialHandlerAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInitialHandlerAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.undertow.injector; +package com.reajason.javaweb.memshell.injector.undertow; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowServletInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowServletInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInjector.java index 85090e8a..b7064de2 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/injector/UndertowServletInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/undertow/UndertowServletInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.undertow.injector; +package com.reajason.javaweb.memshell.injector.undertow; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicFilterInjector.java index 7d0a0272..7776b3bb 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.weblogic.injector; +package com.reajason.javaweb.memshell.injector.weblogic; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicListenerInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicListenerInjector.java index 6161cf9c..152e0fe2 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.weblogic.injector; +package com.reajason.javaweb.memshell.injector.weblogic; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicServletContextAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletContextAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicServletContextAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletContextAgentInjector.java index ea236223..55607097 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicServletContextAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletContextAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.weblogic.injector; +package com.reajason.javaweb.memshell.injector.weblogic; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicServletInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicServletInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletInjector.java index f341836b..0c451b1f 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/weblogic/injector/WebLogicServletInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/weblogic/WebLogicServletInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.weblogic.injector; +package com.reajason.javaweb.memshell.injector.weblogic; import javax.servlet.Servlet; import java.io.ByteArrayInputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereFilterChainAgentInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterChainAgentInjector.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereFilterChainAgentInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterChainAgentInjector.java index 5a2bd755..7f8856cb 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereFilterChainAgentInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterChainAgentInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.websphere.injector; +package com.reajason.javaweb.memshell.injector.websphere; import net.bytebuddy.agent.builder.AgentBuilder; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereFilterInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereFilterInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterInjector.java index fd640a1e..60e624ce 100755 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereFilterInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereFilterInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.websphere.injector; +package com.reajason.javaweb.memshell.injector.websphere; import javax.servlet.Filter; import java.io.ByteArrayInputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereListenerInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereListenerInjector.java similarity index 98% rename from memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereListenerInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereListenerInjector.java index 42a4d505..46f80658 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereListenerInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereListenerInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.websphere.injector; +package com.reajason.javaweb.memshell.injector.websphere; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereServletInjector.java b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereServletInjector.java similarity index 99% rename from memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereServletInjector.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereServletInjector.java index acd8b079..f4b4ba50 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/websphere/injector/WebSphereServletInjector.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/injector/websphere/WebSphereServletInjector.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.websphere.injector; +package com.reajason.javaweb.memshell.injector.websphere; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/antsword/AntSwordHandlerAdvisor.java b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/antsword/jetty/AntSwordHandlerAdvisor.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jetty/antsword/AntSwordHandlerAdvisor.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/antsword/jetty/AntSwordHandlerAdvisor.java index 3f764e10..b64c3bb0 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/antsword/AntSwordHandlerAdvisor.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/antsword/jetty/AntSwordHandlerAdvisor.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jetty.antsword; +package com.reajason.javaweb.memshell.shelltool.antsword.jetty; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/antsword/AntSwordServletInitialHandlerAdvisor.java b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/antsword/undertow/AntSwordServletInitialHandlerAdvisor.java similarity index 97% rename from memshell/src/main/java/com/reajason/javaweb/memshell/undertow/antsword/AntSwordServletInitialHandlerAdvisor.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/antsword/undertow/AntSwordServletInitialHandlerAdvisor.java index a53a6a05..36387bdb 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/antsword/AntSwordServletInitialHandlerAdvisor.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/antsword/undertow/AntSwordServletInitialHandlerAdvisor.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.undertow.antsword; +package com.reajason.javaweb.memshell.shelltool.antsword.undertow; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/behinder/BehinderHandlerAdvisor.java b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/behinder/jetty/BehinderHandlerAdvisor.java similarity index 98% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jetty/behinder/BehinderHandlerAdvisor.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/behinder/jetty/BehinderHandlerAdvisor.java index 2adcaa49..3c1083ec 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/behinder/BehinderHandlerAdvisor.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/behinder/jetty/BehinderHandlerAdvisor.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jetty.behinder; +package com.reajason.javaweb.memshell.shelltool.behinder.jetty; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/behinder/BehinderServletInitialHandlerAdvisor.java b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/behinder/undertow/BehinderServletInitialHandlerAdvisor.java similarity index 98% rename from memshell/src/main/java/com/reajason/javaweb/memshell/undertow/behinder/BehinderServletInitialHandlerAdvisor.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/behinder/undertow/BehinderServletInitialHandlerAdvisor.java index 9b3d14c0..ef0f0b5f 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/behinder/BehinderServletInitialHandlerAdvisor.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/behinder/undertow/BehinderServletInitialHandlerAdvisor.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.undertow.behinder; +package com.reajason.javaweb.memshell.shelltool.behinder.undertow; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/command/CommandHandlerAdvisor.java b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/jetty/CommandHandlerAdvisor.java similarity index 95% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jetty/command/CommandHandlerAdvisor.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/jetty/CommandHandlerAdvisor.java index 66001490..e1024934 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/command/CommandHandlerAdvisor.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/jetty/CommandHandlerAdvisor.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jetty.command; +package com.reajason.javaweb.memshell.shelltool.command.jetty; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/command/CommandServletInitialHandlerAdvisor.java b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/undertow/CommandServletInitialHandlerAdvisor.java similarity index 96% rename from memshell/src/main/java/com/reajason/javaweb/memshell/undertow/command/CommandServletInitialHandlerAdvisor.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/undertow/CommandServletInitialHandlerAdvisor.java index a470514a..e58e7135 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/command/CommandServletInitialHandlerAdvisor.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/command/undertow/CommandServletInitialHandlerAdvisor.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.undertow.command; +package com.reajason.javaweb.memshell.shelltool.command.undertow; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/godzilla/GodzillaHandlerAdvisor.java b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/jetty/GodzillaHandlerAdvisor.java similarity index 98% rename from memshell/src/main/java/com/reajason/javaweb/memshell/jetty/godzilla/GodzillaHandlerAdvisor.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/jetty/GodzillaHandlerAdvisor.java index 38e7b04e..36fdbcf3 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/jetty/godzilla/GodzillaHandlerAdvisor.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/jetty/GodzillaHandlerAdvisor.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.jetty.godzilla; +package com.reajason.javaweb.memshell.shelltool.godzilla.jetty; import net.bytebuddy.asm.Advice; diff --git a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/godzilla/GodzillaServletInitialHandlerAdvisor.java b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/undertow/GodzillaServletInitialHandlerAdvisor.java similarity index 98% rename from memshell/src/main/java/com/reajason/javaweb/memshell/undertow/godzilla/GodzillaServletInitialHandlerAdvisor.java rename to memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/undertow/GodzillaServletInitialHandlerAdvisor.java index 7d50d71b..d494ec33 100644 --- a/memshell/src/main/java/com/reajason/javaweb/memshell/undertow/godzilla/GodzillaServletInitialHandlerAdvisor.java +++ b/memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/undertow/GodzillaServletInitialHandlerAdvisor.java @@ -1,4 +1,4 @@ -package com.reajason.javaweb.memshell.undertow.godzilla; +package com.reajason.javaweb.memshell.shelltool.godzilla.undertow; import net.bytebuddy.asm.Advice;