【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.pswp.cn/news/215278.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215278.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215278.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mysql表的數據類型

數據類型 https://www.sjkjc.com/mysql/varchar/ MySQL 中的數據類型包括以下幾個大類: 字符串類型 數字類型 日期和時間類型 二進制類型 地理位置數據類型 JSON 數據類型 MySQL 字符串數據類型 VARCHAR:純文本字符串,字符串長度是可變的…

智能優化算法應用:基于陰陽對算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用:基于陰陽對算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用:基于陰陽對算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.陰陽對算法4.實驗參數設定5.算法結果6.參考文…

云計算、邊緣計算、霧計算

目錄 云計算邊緣計算霧計算 云計算 云計算是基于互聯網的計算模式,允許用戶通過網絡獲取計算資源、存儲資源、數據庫等服務,無需了解和管理底層 云計算是分布式計算的一種,指的是通過網絡“云”將巨大的數據計算處理程序分解成無數個小程序…

Java - Mybatis的緩存機制、集成SpringBoot后緩存相關問題

mybaits提供一級緩存,和二級緩存 一級緩存(默認開啟) 一級緩存是SqlSession級別的緩存。在操作數據庫時需要構造 sqlSession對象,在對象中有一個(內存區域)數據結構(HashMap)用于存儲緩存數據。不同的sqlSe…

STM32F407-14.3.1-01 時基單元

時基單元 可編程高級控制定時器的主要模塊是一個 16 位計數器及其相關的自動重載寄存器。計數器可遞增計數、遞減計數或交替進行遞增和遞減計數。計數器的時鐘可通過預分頻器進行分頻。 計數器、自動重載寄存器和預分頻器寄存器可通過軟件進行讀寫。即使在計數器運行時也可執行…

Linux ln命令教程:如何創建符號鏈接(附案例詳解和注意事項)

Linux ln命令介紹 Linux ln命令(全稱:link files)是一個非常重要的命令,它的功能是為某一個文件在另外一個位置建立一個同步的鏈接。當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目…

Python:核心知識點整理大全14-筆記

目錄 ?編輯 7.2.2 讓用戶選擇何時退出 parrot.py 7.2.3 使用標志 7.2.4 使用 break 退出循環 cities.py 7.2.5 在循環中使用 continue counting.py 7.2.6 避免無限循環 counting.py 7.3 使用 while 循環來處理列表和字典 7.3.1 在列表之間移動元素 confirmed_user…

數字圖像處理(實踐篇)二十二 使用opencv進行人臉、眼睛、嘴的檢測

目錄 1 xml文件 2 涉及的函數 3 實踐 使用opencv進行人臉、眼睛、嘴的檢測。 1 xml文件 方法① 下載 地址:https://github.com/opencv/opencv/tree/master/data/haarcascades 點擊haarcascade_frontalface_default.xml文件 對著Raw右鍵,選擇“鏈接…

【JVM從入門到實戰】(二)字節碼文件的組成

一、Java虛擬機的組成 二、字節碼文件的組成 字節碼文件的組成 – 應用場景 字節碼文件的組成部分-Magic魔數 什么是魔數? Java字節碼文件中的魔數 文件是無法通過文件擴展名來確定文件類型的,文件擴展名可以隨意修改,不影響文件的內容。…

機器學習筆記 - 隨機樣本共識(RANSAC) 算法

一、什么是 RANSAC? RANSAC(隨機樣本共識)是一種用于機器學習和計算機視覺的算法,隨機樣本共識(RANSAC)是一種迭代方法,用于根據包含異常值的數據集估計數學模型。RANSAC 算法的工作原理是識別數據集中的異常值,并使用不包含異常值的數據來估計所需的模型。 …

在Go中定義結構體

引言 圍繞具體細節構建抽象是編程語言可以提供給開發人員的最好工具。結構體允許Go開發人員描述Go程序運行的世界。結構體允許我們討論Address,而不是描述Street、 City或PostalCode的字符串。它們是我們努力告訴未來開發人員(包括我們自己)哪些數據對我們的Go程序是重要的,…

UE引擎 LandscapeGrass 實現機制分析(UE5.2)

前言 隨著電腦和手機硬件性能越來越高,游戲越來越追求大世界,而大世界非常核心的一環是植被,目前UE5引擎提供給植被生成的主流兩種方式為 手刷植被和LandscapeGrass(WeightMap程序化植被)。當然UE5.3推出新一代PCGFramework 節點程序化生成框…

MyBatis:緩存

MyBatis 緩存一級緩存二級緩存注 緩存 緩存,是數據交換的緩沖區(臨時保存數據的地方)。即將數據(數據一般為頻繁查詢且不易改變)保存在計算機內存中,下次讀取數據時直接從內存中獲取,以避免頻繁…

OpenAI接口調用示例

最近為公司做了一個ChatGPT工具,這里展示一下OpenAI接口的調用 前提條件 訪問OpenAI官網(國內需要翻墻)的賬號,需要sk 地址:https://platform.openai.com 依賴 使用開源工具調用OpenAI接口,依賴如下&am…

js中箭頭函數簡單介紹

1.箭頭函數是 ES6 中新增的一種函數定義方式, 簡單舉例為 var nameA function(a){return a} 可以用箭頭函數簡化為 var nameA a >a; 返回的是你輸入的值 比如 nameA(5) 返回的就是5 nameA(2) 返回的就是2 以上兩個表達的含義是一樣的。nameA為名字 2.…

Vue3封裝一個輪播圖組件

先看效果 編寫組件代碼 CarouselChart.vue <template><div classimg-box><el-button clickpreviousImages v-ifprops.showBtn>←</el-button><div classimg><div styledisplay: flex;gap: 20px idmove><imgclassimg-item v-for(item…

centos7部署docker

文章目錄 &#xff08;1&#xff09;安裝前準備&#xff08;2&#xff09;卸載舊版Docker&#xff08;3&#xff09;安裝docker&#xff08;4&#xff09;配置鏡像加速 &#xff08;1&#xff09;安裝前準備 在開始安裝之前&#xff0c;首先需要檢查內核版本。使用 uname -r 命…

nodejs微信小程序+python+PHP個性化服裝搭配系統APP-計算機畢業設計推薦 android

目 錄 摘 要 I ABSTRACT II 目 錄 II 第1章 緒論 1 1.1背景及意義 1 1.2 國內外研究概況 1 1.3 研究的內容 1 第2章 相關技術 3 2.1 nodejs簡介 4 2.2 express框架介紹 6 2.4 MySQL數據庫 4 第3章 系統分析 5 3.1 需求分析 5 3.2 系統可行性分析 5 3.2.1技術可行性&#xff1a;…

redis(設置密碼)配置文件詳細

1.設置賬號密碼端口 config set requirepass 123456 設置密碼為123456 config get requirepass 查看賬號密碼 auth 123456 登入的時候輸入這個確定賬號密碼 1. 首先連接到Redis服務器: redis-cli 2. 然后使用CONFIG SET命令設置requirepass參數并指定密碼: CONFIG SET requi…

【PyTorch】現代卷積神經網絡

文章目錄 1. 理論介紹1.1. 深度卷積神經網絡&#xff08;AlexNet&#xff09;1.1.1. 概述1.1.2. 模型設計 1.2. 使用塊的網絡&#xff08;VGG&#xff09;1.3. 網絡中的網絡&#xff08;NiN&#xff09;1.4. 含并行連結的網絡&#xff08;GoogLeNet&#xff09; 2. 實例解析2.1…