Skip to content

Commit d0f68f3

Browse files
committed
refactor: rename
1. 将枚举 Server 改为字符串常量,使得 memshell 和 probeshell 都能共用 2. 移除 memshell 模块直接内置在 generator 中 3. 通用类从 memshell 移动至 javaweb 下,命名修改,增加辨识度
1 parent 66c6744 commit d0f68f3

File tree

354 files changed

+1093
-1386
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

354 files changed

+1093
-1386
lines changed
Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package com.reajason.javaweb.boot;
22

3-
import com.reajason.javaweb.memshell.Server;
43
import lombok.extern.slf4j.Slf4j;
54
import org.springframework.boot.SpringApplication;
65
import org.springframework.boot.autoconfigure.SpringBootApplication;
76

8-
import java.util.Arrays;
9-
107
/**
118
* @author ReaJason
129
*/
@@ -16,8 +13,5 @@ public class BootApplication {
1613

1714
public static void main(String[] args) {
1815
SpringApplication.run(BootApplication.class, args);
19-
Server[] values = Server.values();
20-
log.info("Supported servers: {}", Arrays.toString(values));
21-
log.info("For another server, you can open a issue in GitHub, https://github.com/ReaJason/MemShellParty/issues/new?template=%E8%AF%B7%E6%B1%82%E9%80%82%E9%85%8D.md");
2216
}
2317
}

boot/src/main/java/com/reajason/javaweb/boot/controller/ConfigController.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.reajason.javaweb.boot.controller;
22

33
import com.reajason.javaweb.boot.vo.CommandConfigVO;
4-
import com.reajason.javaweb.memshell.Server;
4+
import com.reajason.javaweb.memshell.ServerFactory;
55
import com.reajason.javaweb.memshell.ShellTool;
66
import com.reajason.javaweb.memshell.config.CommandConfig;
7-
import com.reajason.javaweb.memshell.server.AbstractShell;
7+
import com.reajason.javaweb.memshell.server.AbstractServer;
88
import com.reajason.javaweb.packer.Packers;
99
import org.springframework.web.bind.annotation.CrossOrigin;
1010
import org.springframework.web.bind.annotation.GetMapping;
@@ -25,11 +25,10 @@ public class ConfigController {
2525
@RequestMapping("/servers")
2626
public Map<String, List<String>> getServers() {
2727
Map<String, List<String>> servers = new LinkedHashMap<>();
28-
for (Server server : Server.values()) {
29-
if (server.getShell() != null) {
30-
Set<String> supportedShellTypes = server.getShell().getShellInjectorMapping().getSupportedShellTypes();
31-
servers.put(server.name(), supportedShellTypes.stream().toList());
32-
}
28+
List<String> supportedServers = ServerFactory.getSupportedServers();
29+
for (String supportedServer : supportedServers) {
30+
Set<String> supportedShellTypes = ServerFactory.getServer(supportedServer).getShellInjectorMapping().getSupportedShellTypes();
31+
servers.put(supportedServer, supportedShellTypes.stream().toList());
3332
}
3433
return servers;
3534
}
@@ -44,20 +43,21 @@ public List<String> getPackers() {
4443
@RequestMapping
4544
public Map<String, Map<?, ?>> config() {
4645
Map<String, Map<?, ?>> coreMap = new HashMap<>(16);
47-
for (Server value : Server.values()) {
48-
AbstractShell shell = value.getShell();
49-
if (shell == null) {
46+
List<String> supportedServers = ServerFactory.getSupportedServers();
47+
for (String supportedServer : supportedServers) {
48+
AbstractServer server = ServerFactory.getServer(supportedServer);
49+
if (server == null) {
5050
continue;
5151
}
5252
Map<String, Set<String>> map = new LinkedHashMap<>(16);
53-
for (ShellTool shellTool : shell.getSupportedShellTools()) {
54-
Set<String> supportedShellTypes = shell.getSupportedShellTypes(shellTool);
53+
for (ShellTool shellTool : server.getSupportedShellTools()) {
54+
Set<String> supportedShellTypes = server.getSupportedShellTypes(shellTool);
5555
if (supportedShellTypes.isEmpty()) {
5656
continue;
5757
}
5858
map.put(shellTool.name(), supportedShellTypes);
5959
}
60-
coreMap.put(value.name(), map);
60+
coreMap.put(supportedServer, map);
6161
}
6262
return coreMap;
6363
}

boot/src/main/java/com/reajason/javaweb/boot/controller/GeneratorController.java renamed to boot/src/main/java/com/reajason/javaweb/boot/controller/MemShellGeneratorController.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.reajason.javaweb.boot.controller;
22

3-
import com.reajason.javaweb.boot.dto.GenerateRequest;
4-
import com.reajason.javaweb.boot.dto.GenerateResponse;
3+
import com.reajason.javaweb.boot.dto.MemShellGenerateRequest;
4+
import com.reajason.javaweb.boot.dto.MemShellGenerateResponse;
55
import com.reajason.javaweb.memshell.MemShellGenerator;
66
import com.reajason.javaweb.memshell.MemShellResult;
77
import com.reajason.javaweb.memshell.config.InjectorConfig;
@@ -19,22 +19,22 @@
1919
* @since 2024/12/18
2020
*/
2121
@RestController
22-
@RequestMapping("/generate")
22+
@RequestMapping("/memshell/generate")
2323
@CrossOrigin("*")
24-
public class GeneratorController {
24+
public class MemShellGeneratorController {
2525
@PostMapping
26-
public GenerateResponse generate(@RequestBody GenerateRequest request) {
26+
public MemShellGenerateResponse generate(@RequestBody MemShellGenerateRequest request) {
2727
ShellConfig shellConfig = request.getShellConfig();
2828
ShellToolConfig shellToolConfig = request.parseShellToolConfig();
2929
InjectorConfig injectorConfig = request.getInjectorConfig();
3030
MemShellResult generateResult = MemShellGenerator.generate(shellConfig, injectorConfig, shellToolConfig);
3131
Packer packer = request.getPacker().getInstance();
3232
if (packer instanceof JarPacker) {
33-
return new GenerateResponse(generateResult, Base64.getEncoder().encodeToString(((JarPacker) packer).packBytes(generateResult.toJarPackerConfig())));
33+
return new MemShellGenerateResponse(generateResult, Base64.getEncoder().encodeToString(((JarPacker) packer).packBytes(generateResult.toJarPackerConfig())));
3434
} else if (packer instanceof AggregatePacker) {
35-
return new GenerateResponse(generateResult, ((AggregatePacker) packer).packAll(generateResult.toClassPackerConfig()));
35+
return new MemShellGenerateResponse(generateResult, ((AggregatePacker) packer).packAll(generateResult.toClassPackerConfig()));
3636
} else {
37-
return new GenerateResponse(generateResult, packer.pack(generateResult.toClassPackerConfig()));
37+
return new MemShellGenerateResponse(generateResult, packer.pack(generateResult.toClassPackerConfig()));
3838
}
3939
}
4040
}

boot/src/main/java/com/reajason/javaweb/boot/controller/ProbeGeneratorController.java

Lines changed: 0 additions & 33 deletions
This file was deleted.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.reajason.javaweb.boot.controller;
2+
3+
import com.reajason.javaweb.boot.dto.ProbeShellGenerateRequest;
4+
import com.reajason.javaweb.boot.dto.ProbeShellGenerateResponse;
5+
import com.reajason.javaweb.packer.AggregatePacker;
6+
import com.reajason.javaweb.packer.Packer;
7+
import com.reajason.javaweb.probe.ProbeShellGenerator;
8+
import com.reajason.javaweb.probe.ProbeShellResult;
9+
import com.reajason.javaweb.probe.config.ProbeConfig;
10+
import com.reajason.javaweb.probe.config.ProbeContentConfig;
11+
import org.springframework.web.bind.annotation.*;
12+
13+
/**
14+
* @author ReaJason
15+
* @since 2025/8/10
16+
*/
17+
@RestController
18+
@RequestMapping("/probe/generate")
19+
@CrossOrigin("*")
20+
public class ProbeShellGeneratorController {
21+
@PostMapping
22+
public ProbeShellGenerateResponse generate(@RequestBody ProbeShellGenerateRequest request) {
23+
ProbeConfig probeConfig = request.getProbeConfig();
24+
ProbeContentConfig probeContentConfig = request.parseProbeContentConfig();
25+
ProbeShellResult generateResult = ProbeShellGenerator.generate(probeConfig, probeContentConfig);
26+
Packer packer = request.getPacker().getInstance();
27+
if (packer instanceof AggregatePacker) {
28+
return new ProbeShellGenerateResponse(generateResult, ((AggregatePacker) packer).packAll(generateResult.toClassPackerConfig()));
29+
} else {
30+
return new ProbeShellGenerateResponse(generateResult, packer.pack(generateResult.toClassPackerConfig()));
31+
}
32+
}
33+
}

boot/src/main/java/com/reajason/javaweb/boot/dto/GenerateRequest.java renamed to boot/src/main/java/com/reajason/javaweb/boot/dto/MemShellGenerateRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.reajason.javaweb.boot.dto;
22

33
import com.reajason.javaweb.memshell.config.*;
4-
import com.reajason.javaweb.memshell.utils.CommonUtil;
54
import com.reajason.javaweb.packer.Packers;
5+
import com.reajason.javaweb.utils.CommonUtil;
66
import lombok.Data;
77
import org.apache.commons.lang3.StringUtils;
88

@@ -11,7 +11,7 @@
1111
* @since 2024/12/18
1212
*/
1313
@Data
14-
public class GenerateRequest {
14+
public class MemShellGenerateRequest {
1515
private ShellConfig shellConfig;
1616
private ShellToolConfigDTO shellToolConfig;
1717
private InjectorConfig injectorConfig;

boot/src/main/java/com/reajason/javaweb/boot/dto/GenerateResponse.java renamed to boot/src/main/java/com/reajason/javaweb/boot/dto/MemShellGenerateResponse.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@
1212
*/
1313
@Data
1414
@NoArgsConstructor
15-
public class GenerateResponse {
16-
private MemShellResult generateResult;
15+
public class MemShellGenerateResponse {
16+
private MemShellResult memShellResult;
1717
private String packResult;
1818
private Map<String, String> allPackResults;
1919

20-
public GenerateResponse(MemShellResult generateResult, String packResult) {
21-
this.generateResult = generateResult;
20+
public MemShellGenerateResponse(MemShellResult memShellResult, String packResult) {
21+
this.memShellResult = memShellResult;
2222
this.packResult = packResult;
2323
}
2424

25-
public GenerateResponse(MemShellResult generateResult, Map<String, String> allPackResults) {
25+
public MemShellGenerateResponse(MemShellResult memShellResult, Map<String, String> allPackResults) {
2626
this.allPackResults = allPackResults;
27-
this.generateResult = generateResult;
27+
this.memShellResult = memShellResult;
2828
}
2929
}

boot/src/main/java/com/reajason/javaweb/boot/dto/ProbeGenerateResponse.java

Lines changed: 0 additions & 29 deletions
This file was deleted.

boot/src/main/java/com/reajason/javaweb/boot/dto/ProbeGenerateRequest.java renamed to boot/src/main/java/com/reajason/javaweb/boot/dto/ProbeShellGenerateRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* @since 2025/8/10
1010
*/
1111
@Data
12-
public class ProbeGenerateRequest {
12+
public class ProbeShellGenerateRequest {
1313
private ProbeConfig probeConfig;
1414
private ProbeContentConfigDTO probeContentConfig;
1515
private Packers packer;
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.reajason.javaweb.boot.dto;
2+
3+
import com.reajason.javaweb.probe.ProbeShellResult;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
6+
7+
import java.util.Map;
8+
9+
/**
10+
* @author ReaJason
11+
* @since 2025/8/10
12+
*/
13+
@Data
14+
@NoArgsConstructor
15+
public class ProbeShellGenerateResponse {
16+
private ProbeShellResult probeShellResult;
17+
private String packResult;
18+
private Map<String, String> allPackResults;
19+
20+
public ProbeShellGenerateResponse(ProbeShellResult probeShellResult, String packResult) {
21+
this.probeShellResult = probeShellResult;
22+
this.packResult = packResult;
23+
}
24+
25+
public ProbeShellGenerateResponse(ProbeShellResult probeShellResult, Map<String, String> allPackResults) {
26+
this.allPackResults = allPackResults;
27+
this.probeShellResult = probeShellResult;
28+
}
29+
}

0 commit comments

Comments
 (0)