struts2 2.3.20 ognl 允许静态方法访问

2024-01-02

我将项目更新为 Struts2 版本 2.3.20 。现在,我的 JSP 中使用静态方法访问的所有情况都不起作用。

ie.

<s:set var="linkEscaped"
 value="@org.apache.commons.lang.StringEscapeUtils@escapeHtml(#attr.myObject.link)" />

我已经在 struts.properties 中设置了 ->

struts.ognl.allowStaticMethodAccess=true

并在 struts.xml 中尝试 ->

<constant name="struts.ognl.allowStaticMethodAccess" value="true"/>

没有成功。有谁知道发生了什么变化以及我需要做什么才能再次启用它们?


Update

卢卡斯·莱纳特评论道:

需要明确的是,在 2.3.20 的上下文中,这是一个错误并已暂时修复,请参阅 issues.apache.org/jira/browse/WW-4429,但从 2.5 开始,对静态方法的访问将被删除。

---

允许静态方法访问从来都不是首选的处理方式,并且在2.3.20即使这样也行不通struts.ognl.allowStaticMethodAccess被设定为true.

来自wiki https://cwiki.apache.org/confluence/display/WW/Security#Security-Accessingstaticmethods:

访问静态方法

如果您仍然在表达式中使用静态方法(设置struts.ognl.allowStaticMethodAccess to true)请注意,这将不再起作用,因为内部安全机制认为这是对java.lang.Class它位于排除的类列表中(见上文)。临时解决方案是将以上内容复制到您的struts.xml并删除java.lang.Class来自被排除的类别。

对从表达式访问静态方法的支持即将被禁用,请考虑重构您的应用程序以避免进一步的问题!请检查WW-4348 https://issues.apache.org/jira/browse/WW-4348.

Also WW-4429 https://issues.apache.org/jira/browse/WW-4429.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

struts2 2.3.20 ognl 允许静态方法访问 的相关文章

随机推荐