Skip to content

Commit fb5b39a

Browse files
committed
feat: support probe get payload from header by default
1 parent 3838d3d commit fb5b39a

File tree

9 files changed

+9
-37
lines changed

9 files changed

+9
-37
lines changed

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ static class ProbeContentConfigDTO {
2121
private String server;
2222
private String sleepServer;
2323
private String reqParamName;
24-
private String reqHeaderName;
2524
}
2625

2726
public ProbeContentConfig parseProbeContentConfig() {
@@ -35,7 +34,6 @@ public ProbeContentConfig parseProbeContentConfig() {
3534
.build();
3635
case ResponseBody -> ResponseBodyConfig.builder()
3736
.reqParamName(probeContentConfig.reqParamName)
38-
.reqHeaderName(probeContentConfig.reqHeaderName)
3937
.server(probeContentConfig.server)
4038
.build();
4139
default -> throw new UnsupportedOperationException("unknown probe method: " + probeConfig.getProbeMethod());

generator/src/main/java/com/reajason/javaweb/probe/config/ResponseBodyConfig.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,4 @@
1414
public class ResponseBodyConfig extends ProbeContentConfig {
1515
private String server;
1616
private String reqParamName;
17-
private String reqHeaderName;
1817
}

generator/src/main/java/com/reajason/javaweb/probe/generator/response/ResponseBodyGenerator.java

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,8 @@ public ResponseBodyGenerator(ProbeConfig probeConfig, ResponseBodyConfig probeCo
3131

3232
@Override
3333
protected DynamicType.Builder<?> build(ByteBuddy buddy) {
34-
String name;
35-
Class<?> getDataFromReqInterceptor;
36-
if (probeContentConfig.getReqParamName() != null) {
37-
name = probeContentConfig.getReqParamName();
38-
getDataFromReqInterceptor = getDataFromReqParamInterceptor.class;
39-
} else if(probeContentConfig.getReqHeaderName() != null) {
40-
name = probeContentConfig.getReqHeaderName();
41-
getDataFromReqInterceptor = getDataFromReqHeaderInterceptor.class;
42-
}else{
43-
throw new GenerationException("responseBody probeShell must set headerName or paramName");
44-
}
34+
String name = probeContentConfig.getReqParamName();
35+
Class<?> getDataFromReqInterceptor = getDataFromReqInterceptor.class;
4536
Class<?> writerClass = getWriterClass();
4637
Class<?> runnerClass = getRunnerClass();
4738
return buddy.redefine(writerClass)
@@ -95,26 +86,17 @@ private Class<?> getWriterClass() {
9586
}
9687
}
9788

98-
static class getDataFromReqHeaderInterceptor {
99-
@Advice.OnMethodExit
100-
public static void enter(@Advice.Argument(value = 0) Object request,
101-
@NameAnnotation String name,
102-
@Advice.Return(readOnly = false) String ret) throws Exception {
103-
try {
104-
ret = ((String) ShellCommonUtil.invokeMethod(request, "getHeader", new Class[]{String.class}, new Object[]{name}));
105-
} catch (Exception e) {
106-
ret = null;
107-
}
108-
}
109-
}
110-
111-
static class getDataFromReqParamInterceptor {
89+
static class getDataFromReqInterceptor {
11290
@Advice.OnMethodExit
11391
public static void enter(@Advice.Argument(value = 0) Object request,
11492
@NameAnnotation String name,
11593
@Advice.Return(readOnly = false) String ret) throws Exception {
11694
try {
117-
ret = ((String) ShellCommonUtil.invokeMethod(request, "getParameter", new Class[]{String.class}, new Object[]{name}));
95+
String p = (String) ShellCommonUtil.invokeMethod(request, "getParameter", new Class[]{String.class}, new Object[]{name});
96+
if (p == null || p.isEmpty()) {
97+
p = (String) ShellCommonUtil.invokeMethod(request, "getHeader", new Class[]{String.class}, new Object[]{name});
98+
}
99+
ret = p;
118100
} catch (Exception e) {
119101
ret = null;
120102
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public static void responseCommandIsOk(String url, String server, int targetJreV
9292
String headerName = "X-Header";
9393
ResponseBodyConfig responseBodyConfig = ResponseBodyConfig.builder()
9494
.server(server)
95-
.reqHeaderName(headerName)
95+
.reqParamName(headerName)
9696
.build();
9797
ProbeShellResult probeResult = ProbeShellGenerator.generate(probeConfig, responseBodyConfig);
9898
String content = probeResult.getShellBytesBase64Str();

web/src/components/probeshell/main-config-card.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ const PROBE_METHOD_OPTIONS = [
5757

5858
const DEFAULT_FORM_VALUES = {
5959
reqParamName: "payload",
60-
reqHeaderName: "X-PAYLOAD",
6160
sleepServer: "Tomcat",
6261
seconds: 5,
6362
} as const;

web/src/pages/probeshell.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ export default function ProbeShellGenerator() {
5353
host: "",
5454
server: "Tomcat",
5555
reqParamName: "payload",
56-
reqHeaderName: "X-PAYLOAD",
5756
seconds: 5,
5857
sleepServer: "Tomcat",
5958
shrink: true,

web/src/types/probeshell.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ export interface ProbeContentConfig {
2525
sleepServer?: string;
2626
server?: string;
2727
reqParamName?: string;
28-
reqHeaderName?: string;
2928
}
3029

3130
export interface DNSLogConfig {
@@ -40,7 +39,6 @@ export interface SleepConfig {
4039
export interface ResponseBodyConfig {
4140
server: string;
4241
reqParamName: string;
43-
reqHeaderName: string;
4442
}
4543

4644
export interface PayloadFormValues {
@@ -52,7 +50,6 @@ export interface PayloadFormValues {
5250
host?: string;
5351
server?: string;
5452
reqParamName?: string;
55-
reqHeaderName?: string;
5653
sleepServer?: string;
5754
seconds?: number;
5855
packingMethod: string;

web/src/types/schema.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ export const probeShellFormSchema = yup.object().shape({
145145
host: yup.string().optional(),
146146
server: yup.string().optional(),
147147
reqParamName: yup.string().optional(),
148-
reqHeaderName: yup.string().optional(),
149148
seconds: yup.number().optional(),
150149
sleepServer: yup.string().optional(),
151150
packingMethod: yup.string().required(),

web/src/utils/transformer.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ export function transformToProbePostData(formValue: ProbeShellFormSchema) {
6363
sleepServer: formValue.sleepServer,
6464
server: formValue.server,
6565
reqParamName: formValue.reqParamName,
66-
reqHeaderName: formValue.reqHeaderName,
6766
};
6867

6968
return {

0 commit comments

Comments
 (0)