1010import com .reajason .javaweb .probe .generator .ByteBuddyShellGenerator ;
1111import com .reajason .javaweb .probe .payload .ByteCodeProbe ;
1212import com .reajason .javaweb .probe .payload .CommandProbe ;
13+ import com .reajason .javaweb .probe .payload .FilterProbeFactory ;
1314import com .reajason .javaweb .probe .payload .ScriptEngineProbe ;
1415import com .reajason .javaweb .probe .payload .response .*;
1516import com .reajason .javaweb .utils .ShellCommonUtil ;
@@ -37,11 +38,14 @@ public ResponseBodyGenerator(ProbeConfig probeConfig, ResponseBodyConfig probeCo
3738
3839 @ Override
3940 protected DynamicType .Builder <?> build (ByteBuddy buddy ) {
40- String name = probeContentConfig .getReqParamName ();
4141 Class <?> getDataFromReqInterceptor = getDataFromReqInterceptor .class ;
42- if (Server .Jetty .equals (probeContentConfig .getServer ())) {
42+ String server = probeContentConfig .getServer ();
43+ if (Server .Jetty .equals (server )) {
4344 getDataFromReqInterceptor = getDataFromReqJettyInterceptor .class ;
4445 }
46+ if (ProbeContent .Filter .equals (probeConfig .getProbeContent ())) {
47+ probeContentConfig .setBase64Bytes (FilterProbeFactory .getBase64ByServer (server ));
48+ }
4549 Class <?> writerClass = getWriterClass ();
4650 Class <?> runnerClass = getRunnerClass ();
4751 DynamicType .Builder <?> builder = buddy .redefine (writerClass )
@@ -53,12 +57,12 @@ protected DynamicType.Builder<?> build(ByteBuddy buddy) {
5357 .on (named ("run" )));
5458 String base64Bytes = probeContentConfig .getBase64Bytes ();
5559 if (ProbeContent .Bytecode .equals (probeConfig .getProbeContent ())
56- && StringUtils .isNotBlank (base64Bytes )) {
60+ || StringUtils .isNotBlank (base64Bytes )) {
5761 builder = builder .method (named ("getDataFromReq" )).intercept (FixedValue .value (base64Bytes ));
5862 } else {
5963 builder = builder .visit (MethodCallReplaceVisitorWrapper .newInstance ("getDataFromReq" ,
6064 probeConfig .getShellClassName (), ShellCommonUtil .class .getName ()))
61- .visit (Advice .withCustomMapping ().bind (ValueAnnotation .class , name )
65+ .visit (Advice .withCustomMapping ().bind (ValueAnnotation .class , probeContentConfig . getReqParamName () )
6266 .to (getDataFromReqInterceptor ).on (named ("getDataFromReq" )));
6367 }
6468 return builder ;
@@ -69,6 +73,7 @@ private Class<?> getRunnerClass() {
6973 case Command :
7074 return CommandProbe .class ;
7175 case Bytecode :
76+ case Filter :
7277 return ByteCodeProbe .class ;
7378 case ScriptEngine :
7479 return ScriptEngineProbe .class ;
0 commit comments