1

由于最近在 Struts 中发现了安全漏洞,我们正在将应用程序从 struts 版本 2.3.16 升级到 2.3.31。

主要问题之一是 Action 类中 getter 和 setter 的命名约定。

示例:例如 String 的实例变量aType,下面给出的是之前使用的 setter 和 getter,它们在 Struts 2.3.16 中没有问题。

public class ErrorMessageAction extends ActionSupport{

    private String aType;

    public String getAType() {
        return aType;
    }

    public void setAType(String type) {
        this.aType = type;
    }
}

但是对于 Struts 2.3.31,相同实例的 setter 和 getter 的期望应该采用以下格式。

public class ErrorMessageAction extends ActionSupport{

    private String aType;

    public String getaType() {
        return aType;
    }

    public void setaType(String aType) {
        this.aType = aType;
    }
}

我有很多这样的动作类,在应用下面列出的 2.3.31 jar 后会发现这些问题(setter/getter 命名约定)。

commons-lang3-3.2.jar, commons-fileupload-1.3.2.jar,commons-io-2.2.jar
freemarker-2.3.22.jar, ognl-3.0.19.jar, struts2-core-2.3.31.jar
exwork-core-2.3.31.jar, commons-logging-1.1.3.jar, javassist-3.11.0.GA.jar

有人可以在配置级别建议一个不需要在每个 Action 类中更改 setter/getter 的解决方案吗?

4

0 回答 0