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

SpringBoot集成jjwt和使用

1.引入jwt依赖(这里以jjwt为例,具体其他jwt产品可以参见jwt官网)

<dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version>
</dependency>

2.在spring的启动类application.yml中加入配置

jwt:
#  签名,随机设置signature: IU$S&39S%57!kYs@Nc
#  失效时间(分钟)destroy_time: 30

3.完整的jwt工具类代码,复制即可使用

package com.salong.myself.utils.jwt;import com.alibaba.fastjson.JSONObject;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;import java.util.Date;
import java.util.HashMap;
import java.util.UUID;/*** @author Salong* @date 2023/11/16 17:27* @Email:salong0503@aliyun.com 基于jjwt包的jwt工具包*/
@Component
public class JjwtUtil {@Value("${jwt.signature}")public void setSignature(String signature) {JjwtUtil.signature = signature;}@Value("${jwt.destroy_time}")public void setDestroyTime(int destroyTime) {JjwtUtil.destroyTime = destroyTime;}/*** signature签名*/private static String signature;/*** jwt失效时间(分钟)*/private static int destroyTime;public static void main(String[] args) {JjwtUtil.signature= "IU$S&39S%57!kYs@Nc";JjwtUtil.destroyTime = 30;HashMap<String, Object> map = new HashMap<>();map.put("name", "张三");map.put("age", 14);String token = getToken(map);System.out.println("token:" + token);//注意:上述获取的token是可以去类似https://www.box3.cn/tools/jwt.html等jwt等内容解析平台去解析内容的,// 所以不能放敏感信息,如果要放敏感信息,则颁发的token需要额外的加密和解密才可在网络上流通Claims claims = parseToken(token);System.out.println(JSONObject.toJSONString(claims));}public static String getToken(HashMap<String, Object> map) {JwtBuilder jwtBuilder = Jwts.builder()//唯一id.setId(UUID.randomUUID().toString())//todo 接受的用户(一般存用户id,提供的map入参需要给这个参数).setSubject("Salong")//签发时间.setIssuedAt(new Date())//设置失效时间(1分钟失效).setExpiration(new Date(System.currentTimeMillis() + 60L * 1000 * destroyTime))//签名算法及秘钥.signWith(SignatureAlgorithm.HS256, signature).addClaims(map);return jwtBuilder.compact();}public static Claims parseToken(String token) {//解析tokenreturn  (Claims) Jwts.parser().setSigningKey(signature).parse(token).getBody();}}

相关文章:

SpringBoot集成jjwt和使用

1.引入jwt依赖&#xff08;这里以jjwt为例&#xff0c;具体其他jwt产品可以参见jwt官网&#xff09; <dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version> </dependency>…...

RedisConnectionFactory is required已解决!!!!

1.起因&#x1f936;&#x1f936;&#x1f936;&#x1f936; redis搭建完成后&#xff0c;准备启动主程序&#xff0c;异常兴奋&#xff0c;结果报错了&#xff01;&#xff01;&#xff01;&#xff01; 2.究竟是何原因 &#x1f62d;&#x1f62d;&#x1f62d;&#x1f…...

redis的高可用之持久化

1、redis的高可用考虑指标 &#xff08;1&#xff09;正常服务 &#xff08;2&#xff09;数据容量的扩展 &#xff08;3&#xff09;数据的安全性 2、redis实现高可用的四种方式 &#xff08;1&#xff09;持久化 &#xff08;2&#xff09;主从复制 &#xff08;3&…...

onnx模型转换opset版本和固定动态输入尺寸

背景&#xff1a;之前我想把onnx模型从opset12变成opset12&#xff0c;太慌乱就没找着&#xff0c;最近找到了官网上有示例的&#xff0c;大爱onnx官网&#xff0c;分享给有需求没找着的小伙伴们。 1. onnx模型转换opset版本 官网示例&#xff1a; import onnx from onnx im…...

远程运维如何更高效的远程管理?向日葵的这几项功能会帮到你

远程运维如何更高效的远程管理&#xff1f;向日葵的这几项功能会帮到你 具备一定规模的企业&#xff0c;其IT运维需求普遍会面临设备数量众多、难以统一高效管理、始终存在安全敞口等问题&#xff0c;尤其是针对分部广泛的无人值守设备时&#xff0c;更是如此。 举一个简单的例…...

python BDD 的相关概念

在Python 语言中进行BDD的规格和测试文件的编写的时候&#xff0c;常常会遇到下面的概念&#xff1a; Fixture : 测试设施。设定测试环境的预设状态或值的机制。Background&#xff1a; 背景。所有场景的公共部分。Scenario&#xff1a; 场景。Given &#xff1a; 前置条件Whe…...

【Exception】Error: Dynamic require of “path“ is not supported

Talk is cheap, show me the code. 环境 | Environment kversionOSwindows 11Node.jsv18.14.2npm9.5.0vite5.0.0vue3.3.8 报错日志 | Error log >npm run dev> app10.0.0 dev > viteERROR failed to load config from C:\code\frontend\app1\vite.config.js …...

【蓝桥杯选拔赛真题25】C++两个数比大小 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++两个数比大小 一、题目要求 1、编程实现 2、输入输出 二、算法分析...

C++学习——C++运算符重载(含义、格式、示例、遵循的规则)

以下内容源于C语言中文网的学习与整理&#xff0c;非原创&#xff0c;如有侵权请告知删除。 一、运算符重载的含义 所谓重载&#xff0c;就是赋予新的含义。函数重载&#xff08;Function Overloading&#xff09;可以让一个函数名有多种功能&#xff0c;在不同情况下进行不同…...

【unity实战】unity3D中的PRG库存系统和换装系统(附项目源码)

文章目录 先来看看最终效果前言素材简单绘制库存UI前往mixamo获取人物模型动画获取一些自己喜欢的装备物品模型库存系统换装系统装备偏移问题添加消耗品最终效果源码完结 先来看看最终效果 前言 之前2d的换装和库存系统我们都做过不少了&#xff0c;这次就来学习一个3d版本的&…...

编程语言发展史:C语言的诞生及其影响

预计更新 第一部分&#xff1a;早期编程语言 1.1布尔代数和机器语言 1.2汇编语言的出现和发展 1.3高级语言的兴起 第二部分&#xff1a;主流编程语言 1.1 C语言的诞生及其影响 1.2 C语言的发展和应用 1.3 Java语言的出现和发展 1.4 Python语言的兴起和特点 1.5 JavaScript语言…...

(二)pytest自动化测试框架之添加测试用例步骤(@allure.step())

前言 在编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景&#xff0c;一般流程性的测试用例的测试步骤比较多&#xff0c;我们在测试用例中添加详细的步骤会提高测试用例的可阅读性。 allure提供的装饰器allure.step()是allure测试报告框架非常有用的功能&am…...

【用unity实现100个游戏之16】Unity程序化生成随机2D地牢游戏2(附项目源码)

文章目录 先看看最终效果前言生成走廊生成房间修复死胡同增加走廊宽度获取走廊位置信息集合方法一方法二 源码完结 先看看最终效果 前言 上期已经实现了房间的生成&#xff0c;本期紧跟着上期内容&#xff0c;生成走廊并结合上期内容生成连通的房间。 生成走廊 修改Procedur…...

潮玩宇宙大逃杀游戏开发源码说明

潮玩宇宙大逃杀游戏是一款简单而刺激的游戏。玩家在倒计时结束前从8个房间中选择一个房间并投入宝石。倒计时结束后&#xff0c;系统会自动生成一个敌人&#xff0c;然后随机挑选一个房间并清除这个房间内的人。其余7个房间内的玩家就可以按照投入比例获得被清除掉玩家的宝石。…...

UE5 操作WebSocket

插件&#xff1a;https://www.unrealengine.com/marketplace/zh-CN/product/websocket-client 参考&#xff1a;http://dascad.net/html/websocket/bp_index.html 1. 安装Plugings 2.测试websocket服务器 http://www.websocket-test.com/ 3.连接服务器 如果在Level BP里使用&a…...

Linux文件

目录 一、基本概念 二、研究进程和被打开文件的关系 &#xff08;一&#xff09;w方式 &#xff08;二&#xff09;a方式 三、认识系统接口&#xff0c;操作文件 &#xff08;一&#xff09;认识文件描述符 &#xff08;二&#xff09;举例 &#xff08;三&#xff09;…...

素短语的定义

素短语&#xff0c;是指至少含有一个终结符的短语&#xff0c;并且除自身外&#xff0c;不包含更小的素短语。 最左素短语是句型中最左边的素短语。...

【华为OD题库-033】经典屏保-java

题目 DVD机在视频输出时&#xff0c;为了保护电视显像管&#xff0c;在待机状态会显示"屏保动画”&#xff0c;如下图所示,DVD Logo在屏幕内来回运动&#xff0c;碰到边缘会反弹:请根据如下要求&#xff0c;实现屏保Logo坐标的计算算法 1、屏幕是一个800 * 600像素的矩形&…...

clang+llvm多进程gdb调试

clangllvm多进程gdb调试 前言1. 命令行gdb2. 父进程调试3. 子进程调试4. 返回父进程 前言 在学习新增llvm的优化pass时&#xff0c;需要跟踪clang及llvm的调用栈。然而llvm通过posix_spawn()创建了新进程&#xff0c;这使得gdb调试必须有一定的技巧了。 1. 命令行gdb 以下命…...

PHP反序列化简单使用

注&#xff1a;比较简陋&#xff0c;仅供参考。 编写PHP代码&#xff0c;实现反序列化的时候魔法函数自动调用计算器 PHP反序列化 serialize(); 将对象序列化成字符串 unserialize(); 将字符串反序列化回对象 创建类 class Stu{ public $name; public $age; public $sex; publi…...

3分钟搞定数千首歌曲批量歌词下载:LRCGET智能同步歌词工具终极指南

3分钟搞定数千首歌曲批量歌词下载&#xff1a;LRCGET智能同步歌词工具终极指南 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 还在为本地音乐库里的&q…...

观察Taotoken控制台如何清晰展示各API Key的调用量与权限状态

观察Taotoken控制台如何清晰展示各API Key的调用量与权限状态 1. 用量看板的核心功能 Taotoken控制台的用量看板为开发者提供了多维度的API调用数据可视化。登录后&#xff0c;首页默认展示最近7天的聚合数据概览&#xff0c;包括总请求数、成功率和Token消耗总量。点击任一A…...

大模型时代,普通人最该掌握的3项核心能力

大模型时代&#xff0c;普通人最该掌握的3项核心能力引言&#xff1a;大模型浪潮下的生存法则当ChatGPT掀起全球AI热潮&#xff0c;当文心一言、通义千问等国产大模型走进千行百业&#xff0c;我们正经历着人类历史上最深刻的认知革命。这场革命不仅重塑着产业格局&#xff0c;…...

为 Claude Code 编程助手配置 Taotoken 作为后端模型提供商

为 Claude Code 编程助手配置 Taotoken 作为后端模型提供商 1. 理解 Claude Code 与 Taotoken 的集成价值 Claude Code 作为面向开发者的编程辅助工具&#xff0c;其核心能力依赖于后端大模型的支持。通过将 Taotoken 配置为模型提供商&#xff0c;开发者可以获得两个关键优势…...

别再只用普通用户了!详解在Ubuntu Server 22.04中安全启用并远程登录Root账户的全流程

深度解锁Ubuntu Server 22.04的Root权限&#xff1a;安全实践与远程管理全指南 在Linux系统管理中&#xff0c;Root账户如同掌控系统命脉的钥匙。Ubuntu基于安全考虑默认禁用Root直接登录&#xff0c;但某些场景下——比如批量部署服务、调试内核模块或管理多台服务器时&#x…...

多模态离散扩散模型Lumina-DiMOO核心技术解析

1. 项目背景与核心价值 去年在CVPR上第一次看到扩散模型在图像生成领域的惊艳表现时&#xff0c;我就意识到这将是继GAN之后又一个改变游戏规则的技术。但当时所有模型都局限于单一模态&#xff0c;直到我们团队开始探索多模态场景下的离散扩散模型&#xff08;DiMOO&#xff0…...

告别硬件I2C的烦恼:用STM32普通IO口模拟SMBus驱动BQ4050的完整配置流程

告别硬件I2C的烦恼&#xff1a;用STM32普通IO口模拟SMBus驱动BQ4050的完整配置流程 在嵌入式开发中&#xff0c;与电池管理芯片&#xff08;如TI的BQ4050&#xff09;通信是一个常见但充满挑战的任务。许多开发者第一次接触这类项目时&#xff0c;往往会直接选择STM32的硬件I2C…...

Fan Control:如何在Windows上实现精准风扇控制与智能散热管理?

Fan Control&#xff1a;如何在Windows上实现精准风扇控制与智能散热管理&#xff1f; 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com…...

2026年Hermes Agent/OpenClaw怎么部署?华为云简易版2分钟安装及接入百炼APIKey教程

2026年Hermes Agent/OpenClaw怎么部署&#xff1f;华为云简易版2分钟安装及接入百炼APIKey教程。本文面向零基础用户&#xff0c;完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw&#xff08;Clawdbot&#xff09;的流程&#xff0c;包含环境配置、服务启…...

保姆级教程:在Windows 11的Docker Desktop上部署Netdata监控(含汉化与WSL2配置)

Windows 11环境下Docker Desktop部署Netdata全流程指南 对于习惯Windows环境的开发者来说&#xff0c;想要实时监控本地开发环境的资源使用情况往往需要借助第三方工具。Netdata作为一款开源的实时监控工具&#xff0c;以其轻量级和丰富的可视化功能受到开发者青睐。本文将详细…...