gpt4 book ai didi

javassist,获取doGet方法的第二个参数

转载 作者:行者123 更新时间:2023-11-30 08:18:45 27 4
gpt4 key购买 nike

我将代码注入(inject)到 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

这里我得到第二个参数,我希望该参数将是 HttpServletResponse 类的实例,但我看到以下类

org.springframework.security.web.context
.HttpSessionSecurityContextRepository$SaveToSessionResponseWrapper@398ce9f7

背后的action是在DefaultServlet、FrameworkServlet中

我的现实有什么问题吗?

最佳答案

HttpServletResponsean interface ,因此可以有任何正确实现给定接口(interface)的东西。正如您在 Spring 中一样,该框架正在使用自己的实现,正如您从 .toString mehotd 中看到的,它是一个 SaveToSessionResponseWrapper类。

在第二个链接上,您可以找到替换的确切位置:

SaveToSessionResponseWrapper wrappedResponse =
new SaveToSessionResponseWrapper(response, request, httpSession != null, context);
requestResponseHolder.setResponse(wrappedResponse);

您可以在此处找到有关此类的更多信息:

HttpSessionSecurityContextRepository implementation

关于javassist,获取doGet方法的第二个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29282093/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com