1+ package com .reajason .javaweb .boot .controller ;
2+
3+ import com .reajason .javaweb .Server ;
4+ import com .reajason .javaweb .boot .dto .MemShellGenerateRequest ;
5+ import com .reajason .javaweb .boot .dto .MemShellGenerateResponse ;
6+ import com .reajason .javaweb .memshell .ShellTool ;
7+ import com .reajason .javaweb .memshell .ShellType ;
8+ import com .reajason .javaweb .memshell .config .InjectorConfig ;
9+ import com .reajason .javaweb .memshell .config .ShellConfig ;
10+ import com .reajason .javaweb .packer .Packers ;
11+ import org .junit .jupiter .api .Test ;
12+ import org .springframework .beans .factory .annotation .Autowired ;
13+ import org .springframework .boot .test .context .SpringBootTest ;
14+ import org .springframework .boot .test .web .client .TestRestTemplate ;
15+ import org .springframework .http .HttpStatus ;
16+ import org .springframework .http .ResponseEntity ;
17+
18+ import static org .junit .jupiter .api .Assertions .assertEquals ;
19+ import static org .junit .jupiter .api .Assertions .assertNotNull ;
20+
21+ /**
22+ * @author ReaJason
23+ * @since 2025/9/16
24+ */
25+ @ SpringBootTest (webEnvironment = SpringBootTest .WebEnvironment .RANDOM_PORT )
26+ class MemShellGeneratorControllerTest {
27+
28+ @ Autowired
29+ TestRestTemplate restTemplate ;
30+
31+ @ Test
32+ void generateShell () {
33+ MemShellGenerateRequest request = new MemShellGenerateRequest ();
34+ request .setShellConfig (ShellConfig .builder ()
35+ .server (Server .Tomcat )
36+ .shellType (ShellType .FILTER )
37+ .shellTool (ShellTool .Godzilla )
38+ .shrink (true )
39+ .debug (true )
40+ .serverVersion ("Unknown" )
41+ .targetJreVersion (50 )
42+ .build ());
43+ request .setInjectorConfig (InjectorConfig .builder ()
44+ .urlPattern ("/*" )
45+ .build ());
46+ request .setPacker (Packers .ScriptEngine );
47+ MemShellGenerateRequest .ShellToolConfigDTO shellToolConfigDTO = new MemShellGenerateRequest .ShellToolConfigDTO ();
48+ shellToolConfigDTO .setGodzillaKey ("key" );
49+ shellToolConfigDTO .setGodzillaPass ("pass" );
50+ shellToolConfigDTO .setHeaderName ("User-Agent" );
51+ shellToolConfigDTO .setHeaderValue ("hello" );
52+ request .setShellToolConfig (shellToolConfigDTO );
53+ ResponseEntity <MemShellGenerateResponse > response = restTemplate .postForEntity (
54+ "/memshell/generate" , request , MemShellGenerateResponse .class );
55+ assertEquals (HttpStatus .OK , response .getStatusCode ());
56+ assertNotNull (response .getBody ());
57+ }
58+ }
0 commit comments