【微服务】SpringBoot 整合轻量级安全框架JWE 项目实战详解

【微服务】SpringBoot 整合轻量级安全框架JWE 项目实战详解

目录

一、前言

二、JWE 与JWT 介绍

2.1 什么是 JWE

2.2 JWE 与 JWT 的关系

2.3 JWE 主要特点

2.4 JWE 数据结构

2.5 JWE 中常用的加密算法

密钥加密算法 (alg)

内容加密算法 (enc)

2.6 JWE 对比JWT优势

2.6.1 JWT(通常指JWS)局限性

2.6.2 JWE(JSON Web Encryption)优势

2.6.3 JWE与JWT 最佳实践探索

2.7 JWE 优缺点

三、基于JWT 加解密项目整合

3.1 JWT 基本使用

3.1.1 导入基本的依赖

3.1.2 添加一个JWT工具类

3.1.3 提供一个自定义controller

3.2 效果测试

四、基于JWE 加解密项目整合

4.1 导入基本依赖

4.2 提供JWE加解密工具类

4.3 提供JWE加解密测试用例

4.4 整合SpringBoot 常用的优化思路

五、写在最后


一、前言

这些年随着互联网技术的飞速发展,人们对于互联网产品在使用过程中的安全性也提出了更高的要求。在微服务开发过程中,几乎所有的需要上线的项目都会在安全方面进行基本的架构和设计,比如大家熟悉的登录认证,仅这一项就有种类繁多的操作方式,比如账户密码登录,手机验证码登录,有的甚至还需要结合三方认证服务进行安全校验,无一不说明对安全的重视程度。在springboot项目中,对安全的防护首先就是如何保护服务端的接口,经过多年的发展,也形成了比较多的解决思路,也产生了比较多的安全认证框架。本文以java生态下使用比较广泛并且比较轻量级的安全框架JWE为例进行详细的说明。

二、JWE 与JWT 介绍

2.1 什么是 JWE

JWE(JSON Web Encryption)是一种基于JSON的数据加密标准,属于JOSE(Javascript Object Signin

Read more

【python】六个常见爬虫方法介绍

【python】六个常见爬虫方法介绍

在Python中,爬虫是获取网页数据的常用工具。以下是六种常见的爬虫方法,涵盖了从简单的静态网页抓取到动态网页处理的多种场景。 1. 使用 requests + BeautifulSoup 抓取静态网页 这是最基础的爬虫方法,适用于静态网页(HTML内容直接嵌入在网页中)。 示例代码: python 复制 import requests from bs4 import BeautifulSoup # 发送HTTP请求 url = 'https://example.com' response = requests.get(url) # 解析HTML内容 soup = BeautifulSoup(response.text, 'html.parser') # 提取数据 title = soup.title.text print(f'网页标题:

Re:从零开始的 C++ 进阶篇(二)C++继承到底做了什么?从对象模型到底层内存布局彻底讲透

Re:从零开始的 C++ 进阶篇(二)C++继承到底做了什么?从对象模型到底层内存布局彻底讲透

◆ 博主名称: 晓此方-ZEEKLOG博客大家好,欢迎来到晓此方的博客。⭐️C++系列个人专栏: 主题曲:C++程序设计⭐️ 踏破千山志未空,拨开云雾见晴虹。 人生何必叹萧瑟,心在凌霄第一峰 0.1概要&序論 这里是此方,好久不见。 继承是 C++ 中最核心却最易被误解的机制之一。它不仅关乎语法层面的扩展,更涉及对象模型、内存布局与多态实现。本文将从底层原理出发,系统解析继承的真实运作机制。这里是「此方」。让我们现在开始吧! 一,初识继承 1.1 继承的概念与使用方法导入 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许我们在 保持原有类特性的基础上进行扩展,增加方法(成员函数)和属性(成员变量),这样产生新的类,称为 派生类。 继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的函数层次的复用,继承是类设计层次的复用。

自进化医疗智能体:动态记忆与持续运行的Python架构编程(上)

自进化医疗智能体:动态记忆与持续运行的Python架构编程(上)

摘要 在医疗智能系统从“单轮问答工具”向“长期运行的专业代理”演进的过程中,系统能力的上限已不再仅由基础模型参数规模决定,而越来越取决于它是否具备持续感知环境、沉淀经验、对反馈进行学习、在安全边界内渐进优化的工程能力。传统医疗AI往往是离线训练、静态部署、周期更新的模式:模型训练完成后被封装到服务中,系统上线后按照既定规则接收输入、输出结果,直到下一个版本发布才进行整体替换。这种模式在图像分类、结构化预测、辅助编码等任务中长期有效,但在高度动态、强上下文依赖、知识迭代快且责任要求极高的医疗场景中,静态系统的局限性正变得愈发明显。 理想中的医疗智能体,不应只是“会回答”的模型,而应是一个可持续运行、能够保留工作上下文、沉淀情景经验、追踪结果反馈、在多模块治理框架下逐步自我优化的系统实体。它需要像临床团队中的助理成员一样,在值守过程中理解患者状态变化,在与医生和患者的互动中更新记忆,在面对新指南、新药物、新证据时完成知识同步,并在严格审计与人工监督下形成“可回溯、可解释、可限制”的演化机制。 本文围绕“动态记忆、持续运行、自我进化”三个关键能力,

【C++】多态到底难在哪?虚函数表 + 动态绑定,一篇吃透底层逻辑!

【C++】多态到底难在哪?虚函数表 + 动态绑定,一篇吃透底层逻辑!

【C++】多态到底难在哪?虚函数表 + 动态绑定,一篇吃透底层逻辑! * 摘要 * 目录 * 一、多态的概念 * 二、多态的定义和实现 * 1. 多态的构成必要条件 * 2. 虚函数(virtual) * 2.1 虚函数的重写 / 覆盖 * 2.2 重写 / 覆盖 的例外(协变) * 2.3 重写析构函数的重要性 * 2.4 析构函数重写成虚函数的原理 * 2.5 C++11 的 override 和 final * 3. 重载 / 重写 / 隐藏的对比 * 三、抽象类 * 1. 抽象类 * 1.1