一、背景
- 由于Struts2被爆出了远程执行漏洞需要升级版本到2.5.30解决
- 目前程序使用的struts2-core版本是2.3.32,spring版本是2.5.6,commons-lang3版本是3.1,jdk版本1.6
- maven项目管理
二、解决方案
- 升级Struts2-core包版本,升级jdk版本,升级spring版本
- 升级Struts2-core包版本,升级jdk版本
三、解决过程
-
首先在pom文件中升级Struts2-core包的版本至2.5.30进行个简单的编译看有什么变化,结果程序报错actionContext.getParameters(),在版本升级后的对象类型发生了变化由Map变成了HttpParameters
为了避免不影响后面程序的逻辑可以通过新版本的方法toMap()获取map,填充时调用新版本的HttpParameters.create().buildNoNestedWrapping()方法Map parmeters = actionContext.getParameters().toMap(); actionContext.setParameters(HttpParameters.create(parm