Struts2现在的最新版本是2.5.16.最近要上线一个项目,经过Acunetix安全扫描,struts2存在安全漏洞,需要对struts2进行升级。查看项目,项目本身使用的struts版本是2.2.

    现在的struts2版本,相对安全的是2.3.34和最新版2.5.16.

    从2.2版本到2.5.16,可以通过查看他们的包,可以发现需要替换的包结构很多,而且我原本也是打算直接升级到2.5.16,但是替换包之后,才发现很多类的路径即便是修改为升级后的路径,项目访问一样会存在很多问题,可以说,从2.2版本到2.5.16版本我不建议升级。完全可以把2.2版本升级到相对安全的2.3.34版本。

    struts2的版本从2.5以后就有了很大的变化,版本升级需要谨慎。个人建议如果自己的现行版不是很高,不在2.5以上就不要升级到2.5.16.

    我从2.2版本升级到2.3.34版本,替换的包如下(到struts官网可以下载各版本的包):

    commons-lang3-x.y.jar
    freemarker-x.y.z.jar
    ognl-x.y.z.jar
    struts2-core-x.y.z.jar
    struts2-spring-plugin-x.y.z.jar
    xwork-core-x.y.z.jar

    说明:

    1、在替换commons-lang3-x.y.z.jar包的时候要注意这个包的名字,因为在包结构中还有一个包的名字是commons-lang-x.y.z.jar只是少了一个数字3.;

    2、在替换了xwork-core-x.y.z.jar包之后你代码中就会报错,原因就是包路径错误,这时候需要你修改为现包的路径即可;