SuperAPI AI 工具集

spring-boot-security-jwt

安全与审计

查看项目

更新于 10-15 21:53

技能介绍

用途:为 Spring Boot 3.5.x 应用提供无状态 JWT 认证与授权的实现模式,基于 Spring Security 6.x 和 JJWT 0.12.6。

主要能力:使用 JJWT 生成访问令牌与刷新令牌(过期时间可配置);支持 Authorization: Bearer 头与 HttpOnly Cookie 两种认证方式;集成 Spring Data JPA 与 OAuth2 提供方;通过 @PreAuthorize 实现基于角色/权限的 RBAC 与 ABAC;支持令牌吊销与黑名单(登出/轮换)。

使用方式:需引入 spring-boot-starter-security、spring-boot-starter-oauth2-resource-server 及 jjwt-api、jjwt-impl、jjwt-jackson 三个构件。在 application.yml 配置 jwt.secret(至少 256 位,从环境变量读取)、access-token-expiration、refresh-token-expiration、issuer、cookie-name 等。实现 JwtService 负责生成与校验令牌,创建继承 OncePerRequestFilter 的 JwtAuthenticationFilter 提取并验证令牌后写入 SecurityContext,再用 SecurityFilterChain Bean 配置无状态会话与放行路径,并暴露 /register、/authenticate、/refresh、/logout 端点。刷新令牌建议存库(user_id、expiry_date、revoked、expired)并实现轮换。

适用场景:REST API 令牌安全、SPA 后端安全、角色与权限访问控制、刷新令牌与吊销、OAuth2 社交登录、微服务间 JWT 传递。

限制:JWT 仅签名不加密,不得在声明中存放密码或 PII;必须校验 exp、iss、aud;密钥不得硬编码或跨环境共享;Spring Security 6.x 已移除 WebSecurityConfigurerAdapter,须用 SecurityFilterChain Bean 与 @EnableMethodSecurity;访问令牌建议 5–15 分钟过期,刷新令牌须服务端存储,黑名单依赖 jti 声明。具体 Maven/Gradle 片段与完整示例见其 references 目录,本资料未提供价格与平台信息。