新闻详情

新闻详情

首页 / 资讯中心 / 详情

SpringBoot安全认证:JWT从入门到实战

发布时间:2026/11/16 2:27:20来源:尧图网络
SpringBoot安全认证:JWT从入门到实战
前后端分离后Session认证越来越别扭。服务器存Session多节点要共享移动端还不好带Cookie。JWT无状态、自包含成了SpringBoot安全认证的主流方案。但很多人只会复制工具类不懂原理踩坑无数。这篇从入门到实战帮你一次讲透。一、JWT是什么JWT全称JSON Web Token是一串三段式字符串Header.Payload.Signature。Header声明算法Payload存数据用户ID、角色、过期时间Signature用密钥签名防篡改。它不加密只签名所以别放密码等敏感信息。服务端不存Token只验签名天然适合分布式。二、SpringBoot集成四步走第一步引依赖。jjwt-api、jjwt-impl、jjwt-jackson版本用0.11.5以上。第二步写工具类。生成Token设置subject、claims、issuedAt、expiration用HS256和密钥签名。解析Token用同一密钥验签捕获ExpiredJwtException和SignatureException。第三步写过滤器。继承OncePerRequestFilter从Authorization: Bearer xxx取Token解析后塞进SecurityContextHolder。注意过滤器只做认证授权交给Spring Security的PreAuthorize。第四步配置Security。关闭CSRF设置无状态Session放行登录和注册接口其余需认证。三、核心代码示例生成Tokenjava复制下载String token Jwts.builder() .setSubject(userId) .claim(role, role) .setIssuedAt(new Date()) .setExpiration(new Date(System.currentTimeMillis() 86400000)) .signWith(key, SignatureAlgorithm.HS256) .compact();解析Tokenjava复制下载Claims claims Jwts.parserBuilder() .setSigningKey(key) .build() .parseClaimsJws(token) .getBody();过滤器里拿到claims.getSubject()构造UsernamePasswordAuthenticationToken放入上下文。四、刷新Token怎么设计Access Token有效期短比如30分钟Refresh Token有效期长比如7天存Redis。Access过期后前端拿Refresh换新Access。Refresh Token只能使用一次换发后旧的立即失效防止重放。如果Refresh也过期强制重新登录。五、五个必踩的坑第一密钥硬编码。别写死在代码里放配置中心或环境变量定期轮换。第二Payload放敏感信息。JWT是Base64编码不是加密任何人都能解码。手机号、身份证别放。第三不设过期时间。Token永久有效等于没有安全。必须设expiration。第四忽略签名验证。有人图省事只解码不验签攻击者改个roleadmin就提权了。第五跨域和Token存储。前端别存localStorageXSS一偷一个准。推荐HttpOnly Cookie或内存Refresh Token组合。六、进阶无状态与黑名单JWT最大优势是无状态但注销怎么办方案Redis存黑名单Key是Token的jtiTTL设成Token剩余有效期。每次请求查黑名单有就拒绝。这样既保留无状态又能主动失效。七、实战建议登录接口返回Access和Refresh两个Token网关统一验签业务服务只取用户信息用PreAuthorize(hasRole(ADMIN))做细粒度授权日志里别打印完整Token生产环境必须HTTPS。JWT不难难的是安全设计。记住三句话签名防篡改过期防重放黑名单防注销。把这套跑通你的SpringBoot认证就稳了。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/15 4:54:16

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/15 2:04:12

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/14 10:11:15

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/14 17:14:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/14 16:35:50

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/15 4:06:36

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉