Skip to content

Commit ebd1beb

Browse files
committed
test: add JRE and JDK Attacher test cases
1 parent be63177 commit ebd1beb

File tree

11 files changed

+22
-15
lines changed

11 files changed

+22
-15
lines changed

integration-test/src/test/java/com/reajason/javaweb/integration/ShellAssertionTool.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.reajason.javaweb.memshell.*;
77
import com.reajason.javaweb.memshell.config.*;
88
import com.reajason.javaweb.memshell.packer.jar.AgentJarPacker;
9+
import com.reajason.javaweb.memshell.packer.jar.AgentJarWithJDKAttacherPacker;
910
import com.reajason.javaweb.memshell.packer.jar.AgentJarWithJREAttacherPacker;
1011
import com.reajason.javaweb.memshell.packer.jar.JarPacker;
1112
import com.reajason.javaweb.suo5.Suo5Manager;
@@ -110,7 +111,7 @@ public static void packerResultAndInject(GenerateResult generateResult, String u
110111
containsString("ATTACH_ACK"),
111112
containsString("JVM response code = 0")
112113
));
113-
} else if (packer.getInstance() instanceof AgentJarWithJREAttacherPacker) {
114+
} else if (packer.getInstance() instanceof AgentJarWithJREAttacherPacker || packer.getInstance() instanceof AgentJarWithJDKAttacherPacker) {
114115
byte[] bytes = ((JarPacker) packer.getInstance()).packBytes(generateResult);
115116
Path tempJar = Files.createTempFile("temp", "jar");
116117
Files.write(tempJar, bytes);

integration-test/src/test/java/com/reajason/javaweb/integration/TestCasesProvider.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,21 @@ public static Stream<Arguments> getTestCases(String imageName,
5555
return toolSupportedShellTypes.stream().flatMap(supportedShellType -> {
5656
if (supportedShellType.startsWith(ShellType.AGENT)) {
5757
if (!unSupported.contains(supportedShellType + supportedShellTool + Packers.AgentJar)) {
58-
return Stream.of(
59-
arguments(imageName, supportedShellType, supportedShellTool, Packers.AgentJar)
60-
);
58+
Set<Packers> agentJarPackers = testPackers.stream()
59+
.filter(packer -> packer.name().startsWith("AgentJar")).collect(Collectors.toSet());
60+
if (!agentJarPackers.isEmpty()) {
61+
return agentJarPackers.stream()
62+
.map(packer -> Arguments.arguments(imageName, supportedShellType, supportedShellTool, packer));
63+
} else {
64+
return Stream.of(arguments(imageName, supportedShellType, supportedShellTool, Packers.AgentJar));
65+
}
6166
}
6267
return Stream.empty();
6368
} else {
6469
return testPackers.stream()
6570
.map(testPacker -> {
66-
if (!unSupported.contains(supportedShellType + supportedShellTool + testPacker)) {
71+
if (!unSupported.contains(supportedShellType + supportedShellTool + testPacker)
72+
&& !testPacker.name().startsWith("AgentJar")) {
6773
return arguments(imageName, supportedShellType, supportedShellTool, testPacker);
6874
} else {
6975
return null;

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat10ContainerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ static Stream<Arguments> casesProvider() {
5959
ShellType.AGENT_FILTER_CHAIN,
6060
ShellType.CATALINA_AGENT_CONTEXT_VALVE
6161
);
62-
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
62+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize, Packers.AgentJarWithJREAttacher);
6363
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, null, List.of(ShellTool.AntSword));
6464
}
6565

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11ContainerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ static Stream<Arguments> casesProvider() {
6060
ShellType.AGENT_FILTER_CHAIN,
6161
ShellType.CATALINA_AGENT_CONTEXT_VALVE
6262
);
63-
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX);
63+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.AgentJarWithJREAttacher);
6464
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, null, List.of(ShellTool.AntSword));
6565
}
6666

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat11JRE21ContainerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ static Stream<Arguments> casesProvider() {
6161
ShellType.AGENT_FILTER_CHAIN,
6262
ShellType.CATALINA_AGENT_CONTEXT_VALVE
6363
);
64-
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX);
64+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.AgentJarWithJREAttacher);
6565
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers, null, List.of(ShellTool.AntSword));
6666
}
6767

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat5ContainerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ static Stream<Arguments> casesProvider() {
6060
ShellType.AGENT_FILTER_CHAIN,
6161
ShellType.CATALINA_AGENT_CONTEXT_VALVE
6262
);
63-
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
63+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize, Packers.AgentJarWithJDKAttacher);
6464
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
6565
}
6666

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat6ContainerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ static Stream<Arguments> casesProvider() {
5858
ShellType.AGENT_FILTER_CHAIN,
5959
ShellType.CATALINA_AGENT_CONTEXT_VALVE
6060
);
61-
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
61+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize, Packers.AgentJarWithJDKAttacher);
6262
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
6363
}
6464

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat7ContainerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ static Stream<Arguments> casesProvider() {
5959
ShellType.AGENT_FILTER_CHAIN,
6060
ShellType.CATALINA_AGENT_CONTEXT_VALVE
6161
);
62-
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
62+
List<Packers> testPackers = List.of(Packers.AgentJarWithJREAttacher);
6363
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
6464
}
6565

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat8ContainerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ static Stream<Arguments> casesProvider() {
6060
ShellType.WEBSOCKET,
6161
ShellType.AGENT_FILTER_CHAIN,
6262
ShellType.CATALINA_AGENT_CONTEXT_VALVE);
63-
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
63+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize, Packers.AgentJarWithJREAttacher);
6464
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
6565
}
6666

integration-test/src/test/java/com/reajason/javaweb/integration/tomcat/Tomcat9ContainerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ static Stream<Arguments> casesProvider() {
5959
ShellType.AGENT_FILTER_CHAIN,
6060
ShellType.CATALINA_AGENT_CONTEXT_VALVE
6161
);
62-
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize);
62+
List<Packers> testPackers = List.of(Packers.JSP, Packers.JSPX, Packers.JavaDeserialize, Packers.AgentJarWithJREAttacher);
6363
return TestCasesProvider.getTestCases(imageName, server, supportedShellTypes, testPackers);
6464
}
6565

0 commit comments

Comments
 (0)