升级到Struts 2.3.32问题-struts2校验文件不起作用

最近又要修复struts2 s045漏洞,之前漏的一个系统
按照之前的教程,替换为以下jar包:
struts2-core-2.3.32.jar
struts2-json-plugin-2.3.32.jar 
xwork-core-2.3.32.jar
ognl-3.0.19.jar 

freemarker-2.3.22.jar
struts2-spring-plugin-2.3.32.jar
jar包下载地址 http://download.csdn.net/detail/u010050174/9782713

替换完毕后报错:
java.lang.InstantiationError: com.opensymphony.xwork2.util.finder.ClassFinder


发现项目中还存在:
struts2-convention-plugin-2.3.16.jar
struts2-embeddedjsp-plugin-2.3.16.jar
可能换是版本问题
所以继续替换为:struts2-convention-plugin-2.3.32.jar
启动后 项目正常了
后来想,项目可能没有用到这个两个jar包。
就删除以上两个jar
项目依旧正常。
替换完毕后,登陆其他正常,但是 struts2校验文件不起作用,
也就是validation.xml文件 ,对前台参数不起作用了。

正常思路:
项目以前是可以进行校验的,那问题出在替换jar包之后,就是新jar特性问题导致
解决方案:
validation.xml 内容做些修改
1、开头DTD解释文档替换
替换为:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE validators PUBLIC
"-//Apache Struts//XWork Validator 1.0.3//EN"
"http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">

2、expression 改为regex


更改后,项目校验文件可以正常。

猜你喜欢

转载自blog.csdn.net/u010050174/article/details/76615134
今日推荐