struts2 升级至2.3.32时访问页面报错 File "/struts-tags" not found

时间:2023-12-16 14:30:26

Apache struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web 应用的开源MVC框架,主要提供两个版本框架产品: struts 1和struts 2。

Apachestruts 2.3.5 – 2.3.31版本及2.5 – 2.5.10版本存在远程代码执行漏洞(CNNVD-201703-152 ,CVE-2017-5638)。该漏洞是由于上传功能的异常处理函数没有正确处理用户输入的错误信息。导致远程攻击者可通过发送恶意的数据包,利用该漏洞在受影响服务器上执行任意命令。

攻击者可通过发送恶意构造的HTTP数据包利用该漏洞,在受影响服务器上执行系统命令,进一步可完全控制该服务器,造成拒绝服务、数据泄露、网站造篡改等影响。由于该漏洞利用无需任何前置条件(如开启dmi ,debug等功能)以及启用任何插件,因此漏洞危害较为严重。

struts2 升级至2.3.32时访问页面报错 File "/struts-tags" not found

需要升级的jar包:

struts2 升级至2.3.32时访问页面报错 File "/struts-tags" not found

升级完之后遇到了一个问题,访问页面的时候报错

org.apache.jasper.JasperException: /WebContent/first.jsp(3,40) File "/struts-tags" not found,

截图如下:

struts2 升级至2.3.32时访问页面报错 File "/struts-tags" not found

原因:

原来版本的Struts2的struts-tags.tld是在struts2-core-2.*.*.jar下的META-INF文件夹中的,可是2.3.32版本中struts2-core-2.3.32.jar里没有

struts2 升级至2.3.32时访问页面报错 File "/struts-tags" not found            struts2 升级至2.3.32时访问页面报错 File "/struts-tags" not found

结论和解决方法:

所以,如果页面中有使用到struts标签的话,需要手动将原来版本里面的struts-tags.tld放置在WEB-INF文件夹下。

jar下载地址:

http://mvnrepository.com

https://git.oschina.net/liufile/tools/attach_files