一、背景
- 由于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(parmeters).buildNoNestedWrapping()); -
修

本文详细记录了将Struts2从2.3.32升级到2.5.30过程中遇到的问题及解决方案,包括actionContext.getParameters()方法变化、JDK版本升级至1.8、Spring版本升级需求以及commons-lang3版本冲突。通过调整代码、引入兼容库和修改配置文件,成功解决了大部分问题,但线上环境可能还需面对更多挑战。


被折叠的 条评论
为什么被折叠?



