struts2漏洞
由于struts旧版本爆出多个高危漏洞,对于安全性考虑需对struts升级到最新版本。
升级过程中遇到很多坑,经过一段时间的盘查发现,其实这个升级很简单。
我升级的是struts2.5.16,当前官网里面的最新版,以后就不晓得了。。。。咳咳
第一步:找jar包,为什么要找jar包?因为我维护的是老项目,如果你的不是请看最下面。
这是一个很蛋疼的过程,因为看网上升级的方法,替换的jar包都不是很明确,五花八门。进过我逐一排查,反正试了蛮久,最后一下就搞定了。
替换的jar包如下
asm-5.2.jar asm-commons-5.2.jar asm-tree-5.2.jar commons-fileupload-1.3.3.jar
commons-io-2.5.jar commons-lang3-3.6.jar commons-logging-1.1.3.jar
freemarker-2.3.26-incuBATing.jar javassist-3.20.0-GA.jar log4j-api-2.10.0.jar
ognl-3.1.15.jar struts2-core-2.5.16.jar
删除原来的旧包同上,xwork-core-2.3.16.3.jar这个也需要一并删除,最新版集成了该jar包
第二步:修改web.xml
旧版中:路径如下
新版中:路径如下
将 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
替换成<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
第三步:修改struts.xml
1.改掉头部
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
2.将action设置动态访问
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
3.package后面加一个strict-method-invocation="false"
<package name="GameWebsite" namespace="/" extends="struts-default" strict-method-invocation="false">
三步做完了需要将tomcat里面的项目删除重新发布
页面访问如果可以访问后台则替换成功。
如果报错404,500,之类的,你需要跟据项目的结构替换jar包,或者增加配置,配置sturts.xml
struts升级很多坑,我也是从里面刚爬出来。爬出来发现,其实分分钟能搞定的事搞了这么久!!!
作者吐槽:老项目都会存在这个问题,那些自己导jar包的项目,如果你的项目使用了maven,那么就不会有这种麻烦了,直接改下版本号搞定!
相关阅读
编码格式简介(ANSI、GBK、GB2312、UTF-8、GB18030和 UN
转发:http://blog.jobbole.com/30526/来源:潜行者m 的博客编码一直是让新手头疼的问题,特别是 GBK、GB2312、UTF-8 这三个比较常见的
题目 -> 传送门 <-题解 因为下标有可能越界,所以我们平移一下,然后就变成了一道二维背包题。code #include <algorithm> #include
北京时间 9 月 11 日凌晨 1 点,令小伙伴们熬夜等待的苹果发布会如期在乔布斯剧院举行。作为科技界春晚,每年苹果发布会都是各行业的
格式化格林威治时间(Wed Aug 01 00:00:00 CST 2018)
在做excel导入数据时候,excel里的日期是格林威治时间,普通格式化不行,这里总结一下格式化格林威治时间的方法: 1。如果格林威治时间时
1、图标更改目录:D:\2BizBox ERP 3\client\resource\zh_CN在所有的打印图标里,把Detail的默认2bb图标改成自己公司的图标即可要