将Struts从2.3.16升级到2.3.31

时间:2016-11-17 09:24:56

标签: java struts2 ognl xwork

由于最近在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的解决方案吗?

0 个答案:

没有答案