【OPNEGIS】Geoserver原地升级jetty,解决Apache HTTP/2拒绝服务漏洞 (CVE-2023-44487)

Geoserver是我们常用的地图服务器,在开源系统中的应用比较广泛。在实际环境中,我们可能会选用官方的二进制安装包进行部署,这样只要服务器上有java环境就可以运行,方便在现场进行部署。

1.问题来源

这次由于甲方一月一次的漏洞扫描,爆出了jetty的漏洞,搜索得知jetty 9.4.53版本之下的jetty都会受到影响,而现场的geoserver版本已经是2.24.0版本的了,其jetty版本是9.4.52版本,非常尴尬,还得升级。去geoserver官网查找最新版本是2.24.1,下载下来一看,jetty版本仍然是9.4.52,这就尬住了,官方也没有去解决这个问题,只能自己硬着头皮去替换jetty的jar包了。

2.问题解决

之前在解决geoserver jetty漏洞的问题时,我曾经采用替换lib包里的jetty包和外面的start.jar文件来进行修复,现在故技重施,解决思路也是奔着这个目标去。
在这里插入图片描述
首先,替换lib包中的jetty包,jetty的包要去jetty官网下载jetty官网下载
在这里插入图片描述
直接下载zip包即可,分两步替换:

  1. 下载下来之后对照geoserver发行版本中的jetty jar包进行选择替换,总共需要13个jar包
    在这里插入图片描述
  2. 然后将jetty中的start.jar包也替换到geoserver发行包中
    start.ini是jetty的启动配置文件,之前在使用高版本geoserver替换低版本geoserver时需要一并替换,但是现在使用的jetty的官方包替换,这里替换掉之后会丢掉geoserver中的很多配置,所以这里并没有做替换。

替换完成之后就可以去启动试一下了,果然事情不是那么顺利的,报错了

java.lang.UnsupportedClassVersionError: org/geoserver/GeoserverInitStartupListener has been 
compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the 
Java Runtime only recognizes class file versions up to 52.0

百度一下发现是java版本的事情,因为我们替换的jetty包是高版本java编译的,所以运行环境也只能使用高版本的java,java版本和这上面的version的对应关系如下:
在这里插入图片描述
由上图可知,我们的java版本最低也要升级到java11了,去JDK的下载页面查看,发现现在推荐的版本最低都是17了,那那就下载17用吧,反正是向下兼容的。
于是在本地电脑上安装17来测试,发现可以正常运行,大工告成。

3.JDK多版本安装的小插曲

在本地测试安装多版本JDK的过程中,还遇到了JAVA_HOME已经修改成jdk17的版本了,但去cmd中一试还是jdk8版本:

在这里插入图片描述
于是排查自己的修改,发现path中bin目录的配置还是用的原来jdk8的目录,于是修改,再次测试,还是jdk8的版本,没办法,只能继续查找原因。
然后找到如下解决方法:

  1. 删除C:\Windows\System32目录下的java.exe、javaw.exe、javaws.exe三个文件(如果没有就不用删)
  2. 删除环境变量Path中C:\ProgramData\Oracle\Java\javapath的配置

我在system32中没有发现这些文件,在path中发现了javapath的配置,果断删除,重新进入cmd测试,jdk版本就切换过来了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/266690.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openGauss学习笔记-153 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_probackup

文章目录 openGauss学习笔记-153 openGauss 数据库运维-备份与恢复-物理备份与恢复之gs_probackup153.1 背景信息153.2 前提条件153.3 限制说明153.4 命令说明153.5 参数说明153.6 备份流程153.7 故障处理 openGauss学习笔记-153 openGauss 数据库运维-备份与恢复-物理备份与恢…

Connection refused: no further information

解决目录 一、报错信息二、解决方法 一、报错信息 二、解决方法 1、报错原因是开启了代理,像AS是绝对不能开代理的。 2、设置为No proxy,然后Apply再选择OK,重新同步。 要远离消耗你的人和事,不要花费任何情绪或者精力在他们身…

盘点六款颇具潜力的伪原创AI工具

写作作为信息传递的主要媒介,在庞大的信息海洋中,为了在激烈的竞争中脱颖而出,伪原创AI工具成为越来越多写手的神秘利器。在本文中,我们将深入盘点六款颇具潜力的伪原创AI工具,为你揭开它们神秘的面纱。 1. 文心一言 …

【vtkWidgetRepresentation】第九期 vtkAffineRepresentation2D仿射变换

很高兴在雪易的CSDN遇见你 【vtkWidgetRepresentation】第九期 vtk中的仿射变换 前言 本文分享VTK中的仿射变换,实际结果如下图所示,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞关注,小易会继续努力分享,一起进…

Java设计模式-单例(Singleton)设计模式的概述及实现

目录 🐶1 设计模式概述 🐶2 何为单例模式 🐶3 实现思路 🐶4 饿汉式实现代码 🐶5 懒汉式实现代码 🐶6 对比两种模式(特点、优缺点) 🐶7 单例模式的优点及应用场景 &…

HarmonyOS应用开发-手写板

这是一个基于HarmonyOS做的一个手写板应用,只需要简单的几十行代码,就可以实现如下手写功能以及清空画布功能。 一、先上效果图: 二、上代码 Entry Component struct Index {//手写路径State pathCommands: string ;build() {Column() {//…

数据在内存中的存储(整型篇)

1.辨析原码反码补码: 1.原码:有32位(int类四个字节,一个字节八个比特位),第一位是符号位,0正1负,其余为二进制位。 2.计算一般是对原码进行计算,但在负数计算使用原码会导…

笔记本电脑安装了Ubuntu系统设置关盖/合盖不挂起/不睡眠

文章目录 简介通过gnome-tweaks设置通过更改登录配置文件logind.conf设置参考资料 简介 学习工作中需要用到笔记本安装Ubuntu Linux系统,并且需要关盖电脑不关机、不挂起且不睡眠。为此,本篇博客整理了两种常规操作方式,并给了详细的步骤&am…

centos7安全防护_CPU占用率超过百分之300_centos7.4中毒CPU百分之百_清理毒源---Linux工作笔记068

执行top命令的时候看到有个进程: sshd占用cpu百分之300多...而且就算是kill -9 杀掉进程以后,进程又会自动启动 ll /proc/7298 我们执行这个命令,可以看到有个/var/tmp/sshd的文件 我们进入cd /var/tmp 然后我们执行 rm -rf sshd删除这个文件,然后我们再去top可以看到 cpu就…

人工智能(pytorch)搭建模型22-基于pytorch搭建SimpleBaseline(人体关键点检测)模型,并详细介绍该网络模型与代码实现

大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型22-基于pytorch搭建SimpleBaseline(人体关键点检测)模型,并详细介绍该网络模型与代码实现。本文将介绍关于SimpleBaseline模型的原理,以及利用pytorch框架搭建模型…

轻阅书城图书交易平台

SpringBoot MySQL JSP等技术实现的博客系统 技术栈 后端: 核心框架:SpringBoot 持久层框架:MyBatis 分页插件:PageHelper 数据库:MySQL 前端: JS、Jquery、CSS、Bootstrap 项目包含源码和数据库文件。…

Leetcode刷题笔记题解(C++):92. 反转链表 II

思路:获取要反转的区间,拆开之后进行反转再拼接 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* …