当前位置: 首页 > news >正文

onlyoffice docker启用jwt并生成jwt

一、说明

        本文是docker教程,linux/win的安装版本也类似,只需要修改配置文件中的secrt就可以了【Configuring JWT for ONLYOFFICE Docs - ONLYOFFICE】

二、正文开始

        docker启动时候如果不想使用jwt,加上参数-e JWT_ENABLED=false就可以了,比如:

docker run --name=oo -i -t -d -p 10100:80 --restart=always -e JWT_ENABLED=false 镜像基地址

        如果想使用jwt,防止资源滥用,就这样写:

docker run --name=oo -i -t -d -p 10100:80 --restart=always -e JWT_ENABLED=true -e JWT_SECRET=【这里写自己的秘钥】 镜像地址

        两者的却别在于,开启jwt,并配置秘钥,这里注意,docker不需要修改配置文件,直接使用参数就行,不要修改配置文件,如果修改了local.json,容器重启后就会失效!!!

-e JWT_ENABLED=true 
-e JWT_SECRET=【这里写自己的秘钥】

三、jwt生成方式

 1、首先记住你上面的秘钥

 2、你的config

         一般来说,config是由后端生成好传递给前端的,比如说,生成出来是这个样子的,这个格式将作为jwt的加密体,前端收到后,千万不要修改,千万不要修改!!!!!

{"type": "desktop","documentType": "word","historyList": {"history": [],"currentVersion": "1"},"document": {"title": "【经营】通用合同模板.docx","url": "http://47.94.91.67/demo_file/comment_test.docx","permissions": {"print": true,"download": true,"edit": true},"attachId": "e932e7bb1e4d449aa9a7d8b403b4b517","fileType": "docx","key": "ccef18593ef90976d4b5d9"},"editorConfig": {"canCoAuthoring": false,"customization": {"chat": false,"about": false,"feedback": false,"compactHeader": false,"displayTitle": true,"leftMenu": false,"rightMenu": false,"autosave": false,"compactToolbar": false,"forcesave": true,"toolbarNoTabs": true,"help": false,"hideRightMenu": true,"plugins": true,"logo": {"image": "http://192.168.71.162:8083/onlyoffice_logo.png","imageEmbedded": "http://192.168.71.162:8083/only_office_embedded.png","url": "https://oav3.kmxxg.cn/","imageDark": "http://192.168.71.162:8083/onlyoffice_logo.png"}},"mode": "view","callbackUrl": "https://www.onlyoffice.com:443/callback.ashx?from=office-suite","lang": "zh-CN","user": {"name": "曹瑞剑雄","id": "104"}}
}

3、使用jwt加密

        对你生成的config进行加密,比如说你的config像第【2】步一样,这一步也是后端,我用的是java demo:

String config = "{\"type\":\"desktop\",\"documentType\":\"word\",\"historyList\":{\"history\":[],\"currentVersion\":\"1\"},\"document\":{\"title\":\"【经营】通用合同模板.docx\",\"url\":\"http://47.94.91.67/demo_file/comment_test.docx\",\"permissions\":{\"print\":true,\"download\":true,\"edit\":true},\"attachId\":\"e932e7bb1e4d449aa9a7d8b403b4b517\",\"fileType\":\"docx\",\"key\":\"ccef18593ef90976d4b5d9\"},\"editorConfig\":{\"canCoAuthoring\":false,\"customization\":{\"chat\":false,\"about\":false,\"feedback\":false,\"compactHeader\":false,\"displayTitle\":true,\"leftMenu\":false,\"rightMenu\":false,\"autosave\":false,\"compactToolbar\":false,\"forcesave\":true,\"toolbarNoTabs\":true,\"help\":false,\"hideRightMenu\":true,\"plugins\":true,\"logo\":{\"image\":\"http://192.168.71.162:8083/onlyoffice_logo.png\",\"imageEmbedded\":\"http://192.168.71.162:8083/only_office_embedded.png\",\"url\":\"https://oav3.kmxxg.cn/\",\"imageDark\":\"http://192.168.71.162:8083/onlyoffice_logo.png\"}},\"mode\":\"view\",\"callbackUrl\":\"https://www.onlyoffice.com:443/callback.ashx?from=office-suite\",\"lang\":\"zh-CN\",\"user\":{\"name\":\"曹瑞剑雄\",\"id\":\"104\"}}}";
JSONObject jsonObject = JSONUtil.parseObj(config);
String tokenSecret = "你的秘钥";
Map<String, Object> payloadClaims = BeanUtil.beanToMap(jsonObject);
String token = "";
try {Signer signer = HMACSigner.newSHA256Signer(tokenSecret);JWT jwt = new JWT();for (String key : payloadClaims.keySet()) {jwt.addClaim(key, payloadClaims.get(key));}token = JWT.getEncoder().encode(jwt, signer);
} catch (Exception e) {token = "";
}

4、token生成使用

        token生成后,set 进去你的 config 中,然后把新的 config 返回给前端就可以了,比如:

 5、前端使用方式

        前端拿到这个config后,在初始化only的时候不建议修改里面的内容,会导致jwt解析与传入的config不一致导致验证失败。所以拿到内容后直接初始化即可。

        

四、后端用到的 jwt 插件

<dependency><groupId>com.inversoft</groupId><artifactId>prime-jwt</artifactId><version>1.3.1</version>
</dependency>

相关文章:

onlyoffice docker启用jwt并生成jwt

一、说明 本文是docker教程&#xff0c;linux/win的安装版本也类似&#xff0c;只需要修改配置文件中的secrt就可以了【Configuring JWT for ONLYOFFICE Docs - ONLYOFFICE】 二、正文开始 docker启动时候如果不想使用jwt&#xff0c;加上参数-e JWT_ENABLEDfalse就可以了&…...

希尔贝壳受邀参加首届“数据标注产业大会暨供需对接会”

为推动数据标注产业高质量发展&#xff0c;促进数据标注基地快速形成面向产业的规模化服务能力。10月22日&#xff0c;由国家数据局数字科技和基础设施建设司指导的首届“数据标注产业大会暨供需对接会”在北京召开&#xff0c;希尔贝壳受邀参加。 大会旨在进一步推动数据标注…...

35.第二阶段x86游戏实战2-C++遍历技能

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 本人写的内容纯属胡编乱造&#xff0c;全都是合成造假&#xff0c;仅仅只是为了娱乐&#xff0c;请不要…...

Jenkins发布vue项目,版本不一致导致build错误

问题一 yarn.lock文件的存在导致在自动化的时候&#xff0c;频频失败问题二 仓库下载的资源与项目资源版本不一致 本地跑好久的一个项目&#xff0c;现在需要部署在Jenkins上面进行自动化打包部署&#xff1b;想着部署后今后可以省下好多时间&#xff0c;遂兴高采烈地去部署&am…...

vue3使用webSocket

1.安装插件 npm i vueuse/core10.11.12.引入使用 import { useWebSocket } from "vueuse/core"const { send, open, close: wsClose, status } useWebSocket(ws://192.168.100.90:53021/inms-application/alarm, {onMessage: (ws, { data }) > {console.log(&q…...

957种卫星参数文档的分享下载

自1957年10月4日苏联发射第一颗人造卫星Sputnik-1至今已经有67年&#xff0c;如今卫星已经在气象、遥感和通讯等领域为我们提供服务。 现在为你分享957种卫星参数&#xff0c;需要Excel文档请在文未查看领取下载方式。 卫星介绍 卫星是由人类制造并发射到太空&#xff0c;围…...

负载均衡详解:背景、实现技术、作用范围与常用算法

负载均衡&#xff08;Load Balancing&#xff09;是一种通过将请求分配到多个服务器上&#xff0c;从而优化资源使用、提高响应速度并增强系统可靠性的一种技术手段。它是现代分布式系统和互联网应用中不可或缺的一部分。在本篇文章中&#xff0c;我们将深入探讨负载均衡的方方…...

CCAA:产品认证基础3(产品认证方案)

学习要点 *产品认证方案和认证制度 *产品认证方案的基本要素、功能和活动 *产品认证方案的类型 *产品认证方案的制订和实施 *质量管理体系在产品认证方案中的应用 *典型产品认证方案的应用 第一节 产品认证方案和产品认证制度 一、概念 认证制度是指实施认证的规则、程序和…...

go语言中的Scan()和Scanln()输入函数

Scan()输入函数 package mainimport "fmt"func main() {var a intvar b stringfor {fmt.Println("请输入一个整数和一个字符串&#xff08;用空格分隔&#xff09;&#xff1a;")fmt.Scan(&a, &b) // 直接读取输入到变量中fmt.Println("整数…...

UML外卖系统报告(包含具体需求分析)

1 系统背景 随着互联网技术的快速发展&#xff0c;外卖订餐服务逐渐成为人们生活中的一部分。传统的电话订餐方式面临诸多不便和限制&#xff0c;而基于互联网的外卖订餐系统则提供了更加便捷、快速和高效的订餐服务。这种系统通过将餐厅、顾客和配送人员连接起来&#xff0c;…...

net Core Data Protection 数据保护 加密 编码 哈希 FromServices

》》》 通过构造函数 获取服务 [Route("api/[controller]")][ApiController]public class DataProtectController : ControllerBase{[HttpGet]public string Info(){return "zen";}// [FromServices] 自动获取 builder.Services.AddDataProtection()注…...

4K手机壁纸之动漫系列

因为平台限制了图片大小&#xff0c;大家将就看吧&#xff0c;原图找me...

关于eclipse的workspace

如果项目很多&#xff0c;为了方便管理&#xff0c;最好不要是使用working set 对项目进行分组。一个workspace加载项目过多&#xff0c;即使进行分组&#xff0c;有些操作也很对所有项目生效。为了避免卡顿&#xff0c;建议直接使用workspace分组管理&#xff0c;而不是workin…...

Vue引入高德地图自定义信息窗体绑定点击事件无效解决方案

你们好&#xff0c;我是金金金。 场景 笔者用的Vue3&#xff0c;引入了高德地图&#xff0c;version为2.0&#xff0c;场景如下&#xff1a; 在地图上根据经纬度度打点标记了一个位置&#xff0c;然后点击点标记弹出自定义信息窗体&#xff0c;右上角关闭按钮则是绑定了关闭自定…...

私域朋友圈运营

今天必须给大家分享一份超棒的朋友圈运营思维导图 有了它&#xff0c;你可以逐步打造属于自己的精彩朋友圈&#x1f389;。无论是想分享生活点滴&#x1f4a7;&#xff0c;还是展示个人魅力✨&#xff0c;又或者推广自己的业务&#x1f4c8;&#xff0c;这份思维导图都能给你指…...

【Vue】word / excel / ppt / pdf / 视频(mp4,mov) 预览

文件预览 Vue3一. word二. excel三. ppt四. pdf4.1 vue-pdf-embed4.2 iframe 五. 视频六&#xff1a;扩展——kkFileView Vue3 一. word 安装&#xff1a;npm install docx-preview父页面 <template><div><DocPreviewv-if"filePath.includes(docx)"…...

如何加密电脑磁盘?电脑本地磁盘加密方法介绍

随着信息技术的不断发展&#xff0c;电脑磁盘加密已经成为保护个人隐私和数据安全的重要手段。本文将介绍几种常见的电脑本地磁盘加密方法&#xff0c;帮助用户保护自己的数据安全。 文件夹只读加密专家 文件夹只读加密专家不仅可以加密电脑中的文件夹&#xff0c;还可以加密保…...

1688、淘宝、京东搜索商品聚合接口技术实现与代码示例

在当今电商领域&#xff0c;多平台商品搜索已成为用户获取多样化商品信息的重要途径。为了满足用户对1688、淘宝、京东等主流电商平台商品搜索的需求&#xff0c;开发一个跨平台的商品搜索聚合接口显得尤为重要。本文将详细介绍如何实现这一接口&#xff0c;包括接口设计、平台…...

视频智能分析平台LiteAIServer烟火识别软件引领烟火检测与识别的智能新纪元

随着人工智能技术的飞速进步&#xff0c;视频智能分析技术正以前所未有的深度和广度渗透至安全防护、环境监测等多个关键领域。其中&#xff0c;烟火识别软件LiteAIServer凭借其卓越的烟火检测与识别算法&#xff0c;成为了业界瞩目的焦点。 一、烟火检测&#xff1a;守护公共安…...

VUE前端按钮添加遮罩层

需求 当前需求是由于部分按钮操作的执行时间过长&#xff0c;因此添加遮罩层&#xff0c;防止用户误操作。 实现方式 在请求接口时创建遮罩层&#xff0c;并将遮罩层保存为全局唯一&#xff0c;请求成功或失败时&#xff0c;关闭遮罩层即可&#xff0c;切记&#xff0c;请求…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档&#xff1a;manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号&#xff1a;4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...

深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向

在人工智能技术呈指数级发展的当下&#xff0c;大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性&#xff0c;吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型&#xff0c;成为释放其巨大潜力的关键所在&…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...

raid存储技术

1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划&#xff0c;涵盖存储系统的布局、数据存储策略等&#xff0c;它明确数据如何存储、管理与访问&#xff0c;为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...