关于产品 strut2 升级中遇到的问题
问题描述:
株机进行网络安全检测时发现项目中存在 struts2 安全漏洞
漏洞描述
基于产品版本
产品中使用到 strut2 的 jar 包版本为 2.3.15.1
现将 strut2 核心 jar 版本升级为 2.3.35(公司 maven 库 32,34 版无法下载)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.epichust.mestar</groupId>
<artifactId>mestar-parent</artifactId>
<version>${mestar.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-config-browser-plugin</artifactId>
<version>2.3.35</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.35</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-json-plugin</artifactId>
<version>2.3.35</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.3.35</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<artifactId>spring-web</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-jasperreports-plugin</artifactId>
<version>2.3.35</version>
</dependency>
<dependency>
<groupId>org.apache.struts.xwork</groupId>
<artifactId>xwork-core</artifactId>
<version>2.3.35</version>
</dependency>
</dependencies>
</dependencyManagement>
服务启动后报错
ognl,jar 包版本冲突,strut2,2.3.35 版本支持的 ognl 为 3.0.21
在 dependencyManagement 中插入
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.0.21</version>
</dependency>
再次启动后,freemarker 版本冲突,升级到 2.3.28
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
服务启动成功。
暂未解决的问题:
访问服务报错
增加不为空限制后,服务可以正常使用,但是登录界面变成全英文,其他界面暂时未发现问题。
2. 修改的文件有 pom 依赖,LocalizedTextUtil 文件覆盖。见附件
pom.xml
LocalizedTextUtil.java
mestar-third-1.0.0.jar