onlyoffice關閉JWT后依然報錯如何解決?

onlyoffice關閉JWT后依然報錯如何解決?

一、部署方式

我是以docker方式部署的,直接通過環境變量禁用了JWT,命令如下:

docker run -d \--name onlyoffice-no-jwt \--restart=always \-p 8069:80 \-e JWT_ENABLED=false \onlyoffice/documentserver:8.3.3

二、問題描述

部署成功后能正常訪問,但是運行官方示例時,新建文件時報錯。

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

報錯內容如下:

第一個是 Warning

The document could not be saved. Please check connection settings or contact your administrator.
When you click the ‘OK’ button, you will be prompted to download the document.

第二個是 Error

Download failed.
Press “OK” to return to document list

三、問題原因

1.JWT 禁用與私有IP限制沖突
  • 雖然通過 -e JWT_ENABLED=false禁用了JWT驗證,但OnlyOffice 8.3.3版本默認會阻止私有IP訪問。當測試頁面嘗試創建文件時,后端服務可能因私有IP限制而拒絕連接。
  • 典型錯誤日志:Error: DNS lookup xxx.xxx.xxx.xx(family:undefined, host:undefined) is not allowed. Because, It is private IP address。
2. JWT 和私有IP限制的關系
  • JWT 的作用:JWT 是 ONLYOFFICE 的安全機制,用于驗證請求的合法性,防止未經授權的訪問。
  • 私有IP限制:ONLYOFFICE 默認會阻止私有IP(如192.168.x.x、172.16.x.x、10.x.x.x)的訪問,這是為了防止SSRF(服務器端請求偽造)攻擊。

關鍵點

  • 如果啟用 JWT:ONLYOFFICE 會信任經過 JWT 簽名的請求,即使目標地址是私有IP,也不會阻止訪問。

  • 如果禁用 JWT:ONLYOFFICE 會嚴格檢查請求的目標IP,如果是私有IP,就會拒絕訪問,并報錯:

     Error: DNS lookup 192.168.x.x is not allowed. Because, It is private IP address.
    
3. 為什么禁用 JWT 會導致私有IP被阻止?

ONLYOFFICE 的設計邏輯是:

  • 啟用 JWT:認為請求是安全的(因為經過了簽名驗證),所以允許訪問私有IP。
  • 禁用 JWT:認為請求可能不安全,因此強制啟用私有IP過濾,防止惡意請求。

換句話說

  • 不禁用 JWT → 私有IP 可以 訪問(因為請求受信任)。
  • 禁用 JWT → 私有IP 不能 訪問(因為安全策略生效)。

四、解決方法

如果你 必須禁用 JWT,同時又要允許私有IP訪問,可以修改 default.json 配置文件:

"request-filtering-agent": {"allowPrivateIPAddress": true,"allowMetaIPAddress": true
}

修改方法

  • 方法1:因為容器內沒有vim 所以使用 sed 命令直接修改容器內的配置文件default.json
docker exec -it 容器名 /bin/sh -c 'sed -i "s/\"allowPrivateIPAddress\": false/\"allowPrivateIPAddress\": true/g" /etc/onlyoffice/documentserver/default.json'
docker exec -it 容器名 /bin/sh -c 'sed -i "s/\"allowMetaIPAddress\": false/\"allowMetaIPAddress\": true/g" /etc/onlyoffice/documentserver/default.json'
  • 方法2:通過宿主機修改后復制回容器

將配置文件復制到宿主機:

docker cp 容器名:/etc/onlyoffice/documentserver/default.json ./default.json

在宿主機用任意編輯器修改文件,添加或修改以下內容:

"request-filtering-agent": {"allowPrivateIPAddress": true,"allowMetaIPAddress": true
}

復制回容器并重啟ONLYOFFICE容器:

docker cp ./default.json 容器名:/etc/onlyoffice/documentserver/default.json
docker restart 容器名

或進入容器內執行下面的命令 。

supervisorctl restart all

這樣雖然能解決問題,但官方 不建議 這樣做,因為這會降低安全性 。更好的做法是:

內執行下面的命令 。

supervisorctl restart all

這樣雖然能解決問題,但官方 不建議 這樣做,因為這會降低安全性 。更好的做法是:

  1. 啟用 JWT(更安全)。
  2. 如果必須用私有IP,可以搭配域名解析(如修改/etc/hosts或使用內網DNS)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77430.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77430.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77430.shtml

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

相關文章

rk3588 驅動開發(一)字符設備開發

3.字符設備驅動開發 3.1 什么是字符設備驅動 字符設備:就是一個個字節,按照字節流進行讀寫操作的設備,讀寫是按照先后順序的。 舉例子:IIC 按鍵 LED SPI LCD 等 Linux 應用程序調用驅動程序流程: Linux中驅動加載成功…

設計模式 --- 外觀模式

外觀模式是一種結構型設計模式,為復雜子系統提供??統一的高層接口??,通過定義一個外觀類來??簡化客戶端與子系統的交互??,降低系統耦合度。這種模式隱藏了子系統的復雜性,將客戶端與子系統的實現細節隔離開來,…

我的gittee倉庫

日常代碼: 日常代碼提交https://gitee.com/xinxin-pingping/daily-code 有需要的寶子們可自行讀取。

微服務調用中的“大對象陷阱”:CPU飆高問題解析與優化

背景 對幾十萬條用戶歷史存量數據寫入,且存在大對象的基礎上。kafka消費進行消費寫mysql超時。導致上游服務調用時異常,CPU飆高異常。 大對象解釋 大對象的定義與危害 1. 什么是大對象? JVM 內存分配機制:Java 中對象優先分配…

代碼隨想錄算法訓練營day6(字符串)

華子目錄 反轉字符串思路 反轉字符串II思路 替換數字思路 反轉字符串 https://leetcode.cn/problems/reverse-string/ 思路 使用雙指針&#xff0c;初始化時&#xff0c;left指向下標0的位置&#xff0c;right指向最后一個元素的下標當while left<right時&#xff0c;交換…

Oracle 19c新特性:OCP認證考試與職業躍遷的關鍵?

在數字化轉型的浪潮中&#xff0c;Oracle 19c作為數據庫領域的旗艦版本&#xff0c;不僅承載著技術革新的使命&#xff0c;更成為IT從業者職業進階的“黃金跳板”。無論是企業級應用的高可用性需求&#xff0c;還是云原生架構的快速迭代&#xff0c;Oracle 19c的智能化與多模型…

【MySQL數據庫入門到精通】

文章目錄 一、SQL分類二、DDL-數據庫操作1.查詢2.創建數據庫3.刪除數據庫4.使用數據庫 三、DDL-表操作1.查詢 一、SQL分類 根據功能主要分為DDL DML DQL DCL DDL:Date Definition Language數據定義語言&#xff1a;定義數據庫&#xff0c;表和字段 DML:Date Manipulatin Lan…

MCP服務端開發

MCP(Memory, Context, Planning)是一種增強AI系統認知能力的框架,通過整合記憶管理、上下文理解和規劃能力,可以顯著提升AI系統的表現。下面我將為您開發一個完整的MCP服務端。 概述 我們將使用Python開發一個基于FastAPI的MCP服務端,包含以下核心組件: Memory Manager…

前端:uniapp中uni.pageScrollTo方法與元素的overflow-y:auto之間的關聯

在uniapp中&#xff0c;uni.pageScrollTo方法與元素的overflow-y:auto屬性之間存在以下關聯和差異&#xff1a; 一、功能定位差異 ?uni.pageScrollTo? 屬于?頁面級滾動控制?&#xff0c;作用于整個頁面容器?34。要求頁面內容高度必須超過屏幕高度&#xff0c;且由根元素下…

基礎知識-指針

1、指針的基本概念 1.1 什么是指針 1.1.1 指針的定義 指針是一種特殊的變量&#xff0c;與普通變量存儲具體數據不同&#xff0c;它存儲的是內存地址。在計算機程序運行時&#xff0c;數據都被存放在內存中&#xff0c;而指針就像是指向這些數據存放位置的 “路標”。通過指針…

VS遠程Linux_CMake項目搭建

VS遠程Linux CMake項目搭建 準備工作 遠程計算機上安裝 gcc: 一個開源的編譯器集合, GCC支持多種編程語言的編譯&#xff0c;包括C、C、Objective-C、Fortran、Ada、Go、D和Javagdb: GDB&#xff08;GNU Debugger&#xff09;是一個功能強大的調試工具&#xff0c;主要用于調…

替代升級VMware | 云軸科技ZStack構建山西證券一云多芯云平臺

通過云軸科技ZStack Cloud云平臺&#xff0c;山西證券打造了敏捷部署、簡單運維的云平臺&#xff0c;不僅兼容x86、海光、鯤鵬三種異構服務器實現一云多芯&#xff0c;還通過云平臺虛擬化納管模塊納管原有VMware虛擬化資源&#xff0c;并對接第三方集中式存儲&#xff0c;在保護…

MATLAB - 模型預測控制器(MPC)的穩定性和魯棒性問題

系列文章目錄 目錄 系列文章目錄 前言 一、被控對象模型 二、初始控制器設計 三、改進初始設計 五、查看軟約束 七、參考 前言 您可以檢查模型預測控制器設計是否存在潛在的穩定性和魯棒性問題。具體操作如下 在命令行中&#xff0c;使用審查功能。在 MPC Designer 中&a…

《GPT-4.1深度解析:AI進化新標桿,如何重塑行業未來?》

一、GPT-4.1:AI 領域的 “全能戰士” 降臨 1.1 發布背景與戰略意義 在 OpenAI 的技術迭代版圖中,GPT-4.1 被賦予了 “承前啟后” 的關鍵角色。它不僅是 GPT-4o 的全面升級版,更被視為向 GPT-5 過渡的重要橋梁。2025 年 4 月 15 日的發布會上,OpenAI 宣布 GPT-4.1 系列模型…

MySQL+Redis實戰教程:從Docker安裝部署到自動化備份與數據恢復20250418

MySQLRedis實戰教程&#xff1a;從Docker安裝部署到自動化備份與數據恢復 一、前言 在企業應用中&#xff0c;對MySQL和Redis運維的要求越來越高&#xff1a; 不能僅是啟動就算部署運行穩定、隔離、訪問控制、備份恢復、安全可靠&#xff0c;才是 企業級的基本功能 本文將手…

Linux系統編程之守護進程與調試技術

在Linux系統編程中&#xff0c;守護進程&#xff08;Daemon&#xff09;是非常重要的一種概念。它允許程序在后臺運行&#xff0c;不受用戶交互的影響&#xff0c;并且可以持續長時間地運行。通過了解如何創建和管理守護進程&#xff0c;我們能夠開發出更加穩定、高效的系統應用…

Linux中的管道

管道的概念 管道是一種進程間通信的方式。 管道是一種半雙工通信機制&#xff0c;數據只能讀或寫&#xff0c;如果要讀寫同時進行就要創建兩個管道 管道的類型 1、匿名管道PIPE&#xff1a;通常在親緣進程中使用&#xff08;兄弟、父子&#xff09; 函數參考&#xff1a;匿名管…

深度學習2.4 微積分

2.4.1 導數和微分 2.4.2 偏導數 ![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/17227e00adb14472902baba4da675aed.png 2.4.3 梯度 具體證明&#xff0c;矩陣-向量積

《軟件設計師》復習筆記(11.3)——需求獲取、分析、定義、驗證、管理

目錄 一、軟件需求概述 真題示例&#xff1a; 二、質量功能部署&#xff08;QFD&#xff09; 三、需求開發流程 需求獲取 需求分析 需求定義&#xff08;SRS&#xff09; 需求驗證 真題示例&#xff1a; 四、需求管理 真題示例&#xff1a; 一、軟件需求概述 軟件…

Spring Boot 依賴注入與Bean管理:JavaConfig如何取代XML?

大家好呀&#xff01;今天我們來聊一個超級實用的技術話題 —— Spring Boot 中的依賴注入和Bean管理&#xff0c;特別是JavaConfig是如何一步步取代XML配置的。我知道很多小伙伴一聽到"依賴注入"、"Bean管理"這些詞就頭大&#xff0c;別擔心&#xff01;我…