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