diff --git a/boot/src/main/java/com/reajason/javaweb/boot/dto/MemShellGenerateRequest.java b/boot/src/main/java/com/reajason/javaweb/boot/dto/MemShellGenerateRequest.java index 70a3eee0..e93f61f2 100644 --- a/boot/src/main/java/com/reajason/javaweb/boot/dto/MemShellGenerateRequest.java +++ b/boot/src/main/java/com/reajason/javaweb/boot/dto/MemShellGenerateRequest.java @@ -2,9 +2,7 @@ package com.reajason.javaweb.boot.dto; import com.reajason.javaweb.memshell.config.*; import com.reajason.javaweb.packer.Packers; -import com.reajason.javaweb.utils.CommonUtil; import lombok.Data; -import org.apache.commons.lang3.StringUtils; import static com.reajason.javaweb.memshell.ShellTool.*; @@ -20,7 +18,7 @@ public class MemShellGenerateRequest { private Packers packer; @Data - static class ShellToolConfigDTO { + public static class ShellToolConfigDTO { private String shellClassName; private String godzillaPass; private String godzillaKey; diff --git a/boot/src/test/java/com/reajason/javaweb/boot/controller/ConfigControllerIntegrationTest.java b/boot/src/test/java/com/reajason/javaweb/boot/controller/ConfigControllerIntegrationTest.java index 506d3dcb..32f8f937 100644 --- a/boot/src/test/java/com/reajason/javaweb/boot/controller/ConfigControllerIntegrationTest.java +++ b/boot/src/test/java/com/reajason/javaweb/boot/controller/ConfigControllerIntegrationTest.java @@ -27,30 +27,21 @@ public class ConfigControllerIntegrationTest { @Test public void testConfigEndpoint() { ResponseEntity response = restTemplate.getForEntity("/config", Map.class); - assertEquals(HttpStatus.OK, response.getStatusCode()); - - Map body = response.getBody(); - assertNotNull(body); + assertNotNull(response.getBody()); } @Test public void testConfigServersEndpoint() { ResponseEntity response = restTemplate.getForEntity("/config/servers", Map.class); - assertEquals(HttpStatus.OK, response.getStatusCode()); - - Map body = response.getBody(); - assertNotNull(body); + assertNotNull(response.getBody()); } @Test public void testConfigPackersEndpoint() { ResponseEntity response = restTemplate.getForEntity("/config/packers", List.class); - assertEquals(HttpStatus.OK, response.getStatusCode()); - - List body = response.getBody(); - assertNotNull(body); + assertNotNull(response.getBody()); } } \ No newline at end of file diff --git a/boot/src/test/java/com/reajason/javaweb/boot/controller/MemShellGeneratorControllerTest.java b/boot/src/test/java/com/reajason/javaweb/boot/controller/MemShellGeneratorControllerTest.java new file mode 100644 index 00000000..51fd388c --- /dev/null +++ b/boot/src/test/java/com/reajason/javaweb/boot/controller/MemShellGeneratorControllerTest.java @@ -0,0 +1,58 @@ +package com.reajason.javaweb.boot.controller; + +import com.reajason.javaweb.Server; +import com.reajason.javaweb.boot.dto.MemShellGenerateRequest; +import com.reajason.javaweb.boot.dto.MemShellGenerateResponse; +import com.reajason.javaweb.memshell.ShellTool; +import com.reajason.javaweb.memshell.ShellType; +import com.reajason.javaweb.memshell.config.InjectorConfig; +import com.reajason.javaweb.memshell.config.ShellConfig; +import com.reajason.javaweb.packer.Packers; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +/** + * @author ReaJason + * @since 2025/9/16 + */ +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +class MemShellGeneratorControllerTest { + + @Autowired + TestRestTemplate restTemplate; + + @Test + void generateShell() { + MemShellGenerateRequest request = new MemShellGenerateRequest(); + request.setShellConfig(ShellConfig.builder() + .server(Server.Tomcat) + .shellType(ShellType.FILTER) + .shellTool(ShellTool.Godzilla) + .shrink(true) + .debug(true) + .serverVersion("Unknown") + .targetJreVersion(50) + .build()); + request.setInjectorConfig(InjectorConfig.builder() + .urlPattern("/*") + .build()); + request.setPacker(Packers.ScriptEngine); + MemShellGenerateRequest.ShellToolConfigDTO shellToolConfigDTO = new MemShellGenerateRequest.ShellToolConfigDTO(); + shellToolConfigDTO.setGodzillaKey("key"); + shellToolConfigDTO.setGodzillaPass("pass"); + shellToolConfigDTO.setHeaderName("User-Agent"); + shellToolConfigDTO.setHeaderValue("hello"); + request.setShellToolConfig(shellToolConfigDTO); + ResponseEntity response = restTemplate.postForEntity( + "/memshell/generate", request, MemShellGenerateResponse.class); + assertEquals(HttpStatus.OK, response.getStatusCode()); + assertNotNull(response.getBody()); + } +} \ No newline at end of file