新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/28 3:39:47来源:尧图网络
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/9/28 4:35:12

网站及数据库怎么做后门速查手册

网站及数据库怎么做后门速查手册 改个需求建站公司拖一周,这种憋屈感谁懂?你明明只改个按钮颜色,对方却以“重构架构”为由推诿,实则是在掩盖代码混乱与权限失控的黑箱操作。很多老板以为付了钱就是甲方,结果连个数据库账号都拿不到,更别提查看后台逻辑…

阅读更多 →
厦门本地网站新手入门:搞定备案与SEO避坑指南 2026/9/28 4:35:11

厦门本地网站新手入门:搞定备案与SEO避坑指南

厦门本地网站新手入门:搞定备案与SEO避坑指南 在厦门做本地网站,很多老板第一反应是找外包,结果钱花了,网站上线了,百度搜不到,手机打开还卡。其实, 备案流程一头雾水 才是大多数新手卡住的第一道坎,紧接着就是 新手入门…

阅读更多 →
OpenClaw生产级可观测性实战:OpenTelemetry + Logfire 接入 TaoToken 的监控配置全解析 2026/9/28 4:35:05

OpenClaw生产级可观测性实战:OpenTelemetry + Logfire 接入 TaoToken 的监控配置全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
LLM成本优化2026年中实战:用TaoToken统一Key把Token花费砍半的7个工程手段 2026/9/28 4:35:05

LLM成本优化2026年中实战:用TaoToken统一Key把Token花费砍半的7个工程手段

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Token价格一夜暴涨,中小开发者何去何从?TaoToken统一Key/API通道的config.toml配置骨架与验证动作 2026/9/28 4:35:05

Token价格一夜暴涨,中小开发者何去何从?TaoToken统一Key/API通道的config.toml配置骨架与验证动作

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
OpenClaw人人养虾:用 LiteLLM 统一网关配 TaoToken 的 config.yaml 骨架 2026/9/28 4:35:05

OpenClaw人人养虾:用 LiteLLM 统一网关配 TaoToken 的 config.yaml 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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