mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-22 07:00:43 +08:00
refactor: rename springwebmvc
This commit is contained in:
+27
-27
@@ -1,17 +1,17 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor;
|
||||
import com.reajason.javaweb.memshell.springmvc.behinder.BehinderControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springmvc.behinder.BehinderInterceptor;
|
||||
import com.reajason.javaweb.memshell.springmvc.behinder.BehinderServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springmvc.command.CommandControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springmvc.command.CommandInterceptor;
|
||||
import com.reajason.javaweb.memshell.springmvc.godzilla.GodzillaControllerHandler;
|
||||
import com.reajason.javaweb.memshell.springmvc.godzilla.GodzillaInterceptor;
|
||||
import com.reajason.javaweb.memshell.springmvc.godzilla.GodzillaServletAdvisor;
|
||||
import com.reajason.javaweb.memshell.springmvc.injector.SpringControllerHandlerInjector;
|
||||
import com.reajason.javaweb.memshell.springmvc.injector.SpringFrameworkServletAgentInjector;
|
||||
import com.reajason.javaweb.memshell.springmvc.injector.SpringInterceptorInjector;
|
||||
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.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 org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.Map;
|
||||
@@ -20,7 +20,7 @@ import java.util.Map;
|
||||
* @author ReaJason
|
||||
* @since 2024/12/22
|
||||
*/
|
||||
public class SpringMVCShell extends AbstractShell {
|
||||
public class SpringWebMvcShell extends AbstractShell {
|
||||
public static final String INTERCEPTOR = "Interceptor";
|
||||
public static final String JAKARTA_INTERCEPTOR = "JakartaInterceptor";
|
||||
public static final String CONTROLLER_HANDLER = "ControllerHandler";
|
||||
@@ -30,33 +30,33 @@ public class SpringMVCShell extends AbstractShell {
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
return Map.of(
|
||||
INTERCEPTOR, Pair.of(BehinderInterceptor.class, SpringInterceptorInjector.class),
|
||||
JAKARTA_INTERCEPTOR, Pair.of(BehinderInterceptor.class, SpringInterceptorInjector.class),
|
||||
CONTROLLER_HANDLER, Pair.of(BehinderControllerHandler.class, SpringControllerHandlerInjector.class),
|
||||
JAKARTA_CONTROLLER_HANDLER, Pair.of(BehinderControllerHandler.class, SpringControllerHandlerInjector.class),
|
||||
AGENT_FRAMEWORK_SERVLET, Pair.of(BehinderServletAdvisor.class, SpringFrameworkServletAgentInjector.class)
|
||||
INTERCEPTOR, Pair.of(BehinderInterceptor.class, SpringWebMvcInterceptorInjector.class),
|
||||
JAKARTA_INTERCEPTOR, Pair.of(BehinderInterceptor.class, SpringWebMvcInterceptorInjector.class),
|
||||
CONTROLLER_HANDLER, Pair.of(BehinderControllerHandler.class, SpringWebMvcControllerHandlerInjector.class),
|
||||
JAKARTA_CONTROLLER_HANDLER, Pair.of(BehinderControllerHandler.class, SpringWebMvcControllerHandlerInjector.class),
|
||||
AGENT_FRAMEWORK_SERVLET, Pair.of(BehinderServletAdvisor.class, SpringWebMvcFrameworkServletAgentInjector.class)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
return Map.of(
|
||||
INTERCEPTOR, Pair.of(CommandInterceptor.class, SpringInterceptorInjector.class),
|
||||
JAKARTA_INTERCEPTOR, Pair.of(CommandInterceptor.class, SpringInterceptorInjector.class),
|
||||
CONTROLLER_HANDLER, Pair.of(CommandControllerHandler.class, SpringControllerHandlerInjector.class),
|
||||
JAKARTA_CONTROLLER_HANDLER, Pair.of(CommandControllerHandler.class, SpringControllerHandlerInjector.class),
|
||||
AGENT_FRAMEWORK_SERVLET, Pair.of(CommandFilterChainAdvisor.class, SpringFrameworkServletAgentInjector.class)
|
||||
INTERCEPTOR, Pair.of(CommandInterceptor.class, SpringWebMvcInterceptorInjector.class),
|
||||
JAKARTA_INTERCEPTOR, Pair.of(CommandInterceptor.class, SpringWebMvcInterceptorInjector.class),
|
||||
CONTROLLER_HANDLER, Pair.of(CommandControllerHandler.class, SpringWebMvcControllerHandlerInjector.class),
|
||||
JAKARTA_CONTROLLER_HANDLER, Pair.of(CommandControllerHandler.class, SpringWebMvcControllerHandlerInjector.class),
|
||||
AGENT_FRAMEWORK_SERVLET, Pair.of(CommandFilterChainAdvisor.class, SpringWebMvcFrameworkServletAgentInjector.class)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
return Map.of(
|
||||
INTERCEPTOR, Pair.of(GodzillaInterceptor.class, SpringInterceptorInjector.class),
|
||||
JAKARTA_INTERCEPTOR, Pair.of(GodzillaInterceptor.class, SpringInterceptorInjector.class),
|
||||
CONTROLLER_HANDLER, Pair.of(GodzillaControllerHandler.class, SpringControllerHandlerInjector.class),
|
||||
JAKARTA_CONTROLLER_HANDLER, Pair.of(GodzillaControllerHandler.class, SpringControllerHandlerInjector.class),
|
||||
AGENT_FRAMEWORK_SERVLET, Pair.of(GodzillaServletAdvisor.class, SpringFrameworkServletAgentInjector.class)
|
||||
INTERCEPTOR, Pair.of(GodzillaInterceptor.class, SpringWebMvcInterceptorInjector.class),
|
||||
JAKARTA_INTERCEPTOR, Pair.of(GodzillaInterceptor.class, SpringWebMvcInterceptorInjector.class),
|
||||
CONTROLLER_HANDLER, Pair.of(GodzillaControllerHandler.class, SpringWebMvcControllerHandlerInjector.class),
|
||||
JAKARTA_CONTROLLER_HANDLER, Pair.of(GodzillaControllerHandler.class, SpringWebMvcControllerHandlerInjector.class),
|
||||
AGENT_FRAMEWORK_SERVLET, Pair.of(GodzillaServletAdvisor.class, SpringWebMvcFrameworkServletAgentInjector.class)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ public enum Server {
|
||||
/**
|
||||
* SpringMVC 框架
|
||||
*/
|
||||
SpringMVC(new SpringMVCShell()),
|
||||
SpringWebMvc(new SpringWebMvcShell()),
|
||||
|
||||
/**
|
||||
* Spring Webflux 框架
|
||||
|
||||
@@ -70,7 +70,7 @@ public class CommonUtil {
|
||||
String packageName = switch (server) {
|
||||
case Jetty -> "org.eclipse.jetty.servlet.handlers";
|
||||
case Undertow, JBossEAP7, WildFly -> "io.undertow.servlet.handlers";
|
||||
case SpringMVC -> "org.springframework.boot.mvc.handlers";
|
||||
case SpringWebMvc -> "org.springframework.boot.mvc.handlers";
|
||||
case SpringWebflux -> "org.springframework.boot.webflux.handlers";
|
||||
case WebSphere -> "com.ibm.ws.webcontainer.handlers";
|
||||
case WebLogic -> "weblogic.servlet.internal.handlers";
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
package com.reajason.javaweb.integration;
|
||||
|
||||
import com.reajason.javaweb.GeneratorMain;
|
||||
import com.reajason.javaweb.memshell.SpringMVCShell;
|
||||
import com.reajason.javaweb.memshell.SpringWebMvcShell;
|
||||
import com.reajason.javaweb.memshell.SpringWebFluxShell;
|
||||
import com.reajason.javaweb.memshell.config.*;
|
||||
import com.reajason.javaweb.memshell.packer.JarPacker;
|
||||
@@ -38,7 +38,7 @@ public class ShellAssertionTool {
|
||||
|
||||
String urlPattern = null;
|
||||
if (shellType.endsWith(Constants.SERVLET)
|
||||
|| shellType.endsWith(SpringMVCShell.CONTROLLER_HANDLER)
|
||||
|| shellType.endsWith(SpringWebMvcShell.CONTROLLER_HANDLER)
|
||||
|| shellType.equals(SpringWebFluxShell.HANDLER_METHOD)
|
||||
|| shellType.equals(SpringWebFluxShell.HANDLER_FUNCTION)
|
||||
) {
|
||||
|
||||
+23
-24
@@ -1,7 +1,6 @@
|
||||
package com.reajason.javaweb.integration.springmvc;
|
||||
|
||||
import com.reajason.javaweb.memshell.SpringMVCShell;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.SpringWebMvcShell;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
@@ -44,27 +43,27 @@ public class SpringBoot2ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, SpringMVCShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, SpringMVCShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packer.INSTANCE.AgentJar)
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packer.INSTANCE.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -77,7 +76,7 @@ public class SpringBoot2ContainerTest {
|
||||
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
|
||||
@MethodSource("casesProvider")
|
||||
void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) {
|
||||
testShellInjectAssertOk(getUrl(container), Server.SpringMVC, shellType, shellTool, Opcodes.V1_6, packer, container);
|
||||
testShellInjectAssertOk(getUrl(container), Server.SpringWebMvc, shellType, shellTool, Opcodes.V1_6, packer, container);
|
||||
}
|
||||
|
||||
public static String getUrl(GenericContainer<?> container) {
|
||||
|
||||
+20
-20
@@ -1,6 +1,6 @@
|
||||
package com.reajason.javaweb.integration.springmvc;
|
||||
|
||||
import com.reajason.javaweb.memshell.SpringMVCShell;
|
||||
import com.reajason.javaweb.memshell.SpringWebMvcShell;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
@@ -41,24 +41,24 @@ public class SpringBoot2WarContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringMVCShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64)
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.ScriptEngine),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.SpEL),
|
||||
arguments(imageName, SpringWebMvcShell.CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -71,6 +71,6 @@ public class SpringBoot2WarContainerTest {
|
||||
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
|
||||
@MethodSource("casesProvider")
|
||||
void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) {
|
||||
testShellInjectAssertOk(getUrl(container), Server.SpringMVC, shellType, shellTool, Opcodes.V1_6, packer);
|
||||
testShellInjectAssertOk(getUrl(container), Server.SpringWebMvc, shellType, shellTool, Opcodes.V1_6, packer);
|
||||
}
|
||||
}
|
||||
|
||||
+11
-11
@@ -1,6 +1,6 @@
|
||||
package com.reajason.javaweb.integration.springmvc;
|
||||
|
||||
import com.reajason.javaweb.memshell.SpringMVCShell;
|
||||
import com.reajason.javaweb.memshell.SpringWebMvcShell;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
@@ -43,15 +43,15 @@ public class SpringBoot3ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, SpringMVCShell.JAKARTA_INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.JAKARTA_INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.JAKARTA_INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringMVCShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, SpringMVCShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, SpringMVCShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packer.INSTANCE.AgentJar)
|
||||
arguments(imageName, SpringWebMvcShell.JAKARTA_INTERCEPTOR, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.JAKARTA_INTERCEPTOR, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.JAKARTA_INTERCEPTOR, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Behinder, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.JAKARTA_CONTROLLER_HANDLER, ShellTool.Command, Packer.INSTANCE.Base64),
|
||||
arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Command, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Godzilla, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, SpringWebMvcShell.AGENT_FRAMEWORK_SERVLET, ShellTool.Behinder, Packer.INSTANCE.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
@@ -64,7 +64,7 @@ public class SpringBoot3ContainerTest {
|
||||
@ParameterizedTest(name = "{0}|{1}{2}|{3}")
|
||||
@MethodSource("casesProvider")
|
||||
void test(String imageName, String shellType, ShellTool shellTool, Packer.INSTANCE packer) {
|
||||
testShellInjectAssertOk(getUrl(container), Server.SpringMVC, shellType, shellTool, Opcodes.V17, packer, container);
|
||||
testShellInjectAssertOk(getUrl(container), Server.SpringWebMvc, shellType, shellTool, Opcodes.V17, packer, container);
|
||||
}
|
||||
|
||||
public static String getUrl(GenericContainer<?> container) {
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.behinder;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.behinder;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.Controller;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.behinder;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.behinder;
|
||||
|
||||
import org.springframework.web.servlet.AsyncHandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.behinder;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.behinder;
|
||||
|
||||
import net.bytebuddy.asm.Advice;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.command;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.command;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.Controller;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.command;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.command;
|
||||
|
||||
import org.springframework.web.servlet.AsyncHandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.godzilla;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.godzilla;
|
||||
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.Controller;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.godzilla;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.godzilla;
|
||||
|
||||
import org.springframework.web.servlet.AsyncHandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.godzilla;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.godzilla;
|
||||
|
||||
import net.bytebuddy.asm.Advice;
|
||||
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.injector;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.injector;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -14,10 +14,10 @@ import java.util.zip.GZIPInputStream;
|
||||
* @author ReaJason
|
||||
* @since 2024/12/22
|
||||
*/
|
||||
public class SpringControllerHandlerInjector {
|
||||
public class SpringWebMvcControllerHandlerInjector {
|
||||
|
||||
static {
|
||||
new SpringControllerHandlerInjector();
|
||||
new SpringWebMvcControllerHandlerInjector();
|
||||
}
|
||||
|
||||
public String getUrlPattern() {
|
||||
@@ -32,7 +32,7 @@ public class SpringControllerHandlerInjector {
|
||||
return "{{base64Str}}";
|
||||
}
|
||||
|
||||
public SpringControllerHandlerInjector() {
|
||||
public SpringWebMvcControllerHandlerInjector() {
|
||||
try {
|
||||
Object context = getContext();
|
||||
Object interceptor = getShell();
|
||||
+3
-3
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.injector;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.injector;
|
||||
|
||||
import net.bytebuddy.agent.builder.AgentBuilder;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
@@ -16,7 +16,7 @@ import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
* @author ReaJason
|
||||
* @since 2024/12/28
|
||||
*/
|
||||
public class SpringFrameworkServletAgentInjector implements AgentBuilder.Transformer {
|
||||
public class SpringWebMvcFrameworkServletAgentInjector implements AgentBuilder.Transformer {
|
||||
|
||||
static Class<?> interceptorClass = null;
|
||||
|
||||
@@ -57,7 +57,7 @@ public class SpringFrameworkServletAgentInjector implements AgentBuilder.Transfo
|
||||
// .with(AgentBuilder.Listener.StreamWriting.toSystemError().withErrorsOnly())
|
||||
// .with(AgentBuilder.Listener.StreamWriting.toSystemOut().withTransformationsOnly())
|
||||
.type(named("org.springframework.web.servlet.FrameworkServlet"))
|
||||
.transform(new SpringFrameworkServletAgentInjector())
|
||||
.transform(new SpringWebMvcFrameworkServletAgentInjector())
|
||||
.installOn(inst);
|
||||
System.out.println("MemShell Agent is working at org.springframework.web.servlet.FrameworkServlet.service");
|
||||
}
|
||||
+4
-4
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.springmvc.injector;
|
||||
package com.reajason.javaweb.memshell.springwebmvc.injector;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -14,10 +14,10 @@ import java.util.zip.GZIPInputStream;
|
||||
* @author ReaJason
|
||||
* @since 2024/12/22
|
||||
*/
|
||||
public class SpringInterceptorInjector {
|
||||
public class SpringWebMvcInterceptorInjector {
|
||||
|
||||
static {
|
||||
new SpringInterceptorInjector();
|
||||
new SpringWebMvcInterceptorInjector();
|
||||
}
|
||||
|
||||
public String getUrlPattern() {
|
||||
@@ -32,7 +32,7 @@ public class SpringInterceptorInjector {
|
||||
return "{{base64Str}}";
|
||||
}
|
||||
|
||||
public SpringInterceptorInjector() {
|
||||
public SpringWebMvcInterceptorInjector() {
|
||||
try {
|
||||
Object context = getContext();
|
||||
Object interceptor = getShell();
|
||||
Reference in New Issue
Block a user