javassist,获取doGet方法的第二个参数
我将代码注入javassist,获取doGet方法的第二个参数,java,spring,javassist,Java,Spring,Javassist,我将代码注入doGet方法 val replace = "" + " System.out.println(\"[before] " + className + "\");" + " $proceed($$);" + " try{System.out.println(\"$args[2] = \" + $args[1].toString());}catch(Exception ex){System.out.println(\"ERROR\");}" " System.ou
doGet
方法
val replace = "" +
" System.out.println(\"[before] " + className + "\");" +
" $proceed($$);" +
" try{System.out.println(\"$args[2] = \" + $args[1].toString());}catch(Exception ex){System.out.println(\"ERROR\");}"
" System.out.println(\"[after] " + className + "\");".stripMargin
这里我得到了第二个param,我希望param将是HttpServletResponse类的实例,但我看到了下面的类
org.springframework.security.web.context
.HttpSessionSecurityContextRepository$SaveToSessionResponseWrapper@398ce9f7
操作的背后是DefaultServlet,FrameworkServlet
我的现实出了什么问题
HttpServletResponse
是,因此可以有任何东西正确地实现给定的接口。在Spring中,框架正在使用它自己的实现,正如您从.toString
mehotd中看到的,它是一个类
在第二个链接上,您可以找到一个确切的位置,替换如下:
SaveToSessionResponseWrapper wrappedResponse =
new SaveToSessionResponseWrapper(response, request, httpSession != null, context);
requestResponseHolder.setResponse(wrappedResponse);
您可以在此处找到有关此类的更多信息:
这是一个非常特定的子类的实例,但它仍然是一个实例。