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

Spring Boot JWT认证示例项目

项目简介

这是一个基于Spring Boot的REST API示例项目,集成了JWT(JSON Web Token)认证和Shiro权限管理框架,并使用Swagger/OpenAPI进行API文档管理。

stevensu1/EC0520

技术栈

  • Spring Boot 2.7.18
  • Apache Shiro 1.12.0
  • JWT (java-jwt 4.4.0)
  • SpringDoc OpenAPI (Swagger) 1.6.15
  • Java 8

主要功能

  1. JWT令牌认证

    • 用户登录获取JWT令牌
    • 基于JWT的无状态会话管理
  2. 权限管理

    • 基于Shiro的角色权限控制
    • 支持注解式权限控制(@RequiresRoles, @RequiresPermissions)
  3. API文档

    • 集成Swagger UI接口文档
    • 支持JWT认证的API测试

项目结构


src/main/java/com/example/demo/
├── DemoApplication.java          # 应用程序入口
├── auth/
│   └── CustomRealm.java         # Shiro自定义认证授权实现
├── config/
│   ├── ShiroConfig.java         # Shiro配置类
│   └── SwaggerConfig.java       # Swagger配置类
├── controller/
│   └── AuthController.java      # 认证相关接口
└── util/
└── JwtUtil.java            # JWT工具类

API接口说明

1. 登录接口

POST /login 参数:

  • username: 用户名
  • password: 密码 返回:
  • token: JWT令牌
  • msg: 响应消息

2. 受保护资源

GET /protected 要求:需要JWT认证

GET /role-protected 要求:需要'user'角色权限

快速开始

1. 环境要求

  • JDK 8+
  • Maven 3.6+

2. 构建和运行

# 克隆项目
git clone [项目地址]

# 进入项目目录
cd EC0520

# 编译打包
mvn clean package

# 运行项目
java -jar target/demo-0.0.1-SNAPSHOT.jar
Swagger UI: http://localhost:8080/swagger-ui.html
OpenAPI文档: http://localhost:8080/api-docs

## 安全配置
- JWT令牌默认有效期:24小时
- 所有API接口(除登录和Swagger文档外)都需要JWT认证
- 支持角色基础的访问控制
## 开发说明
1. 认证流程
   
   - 用户通过/login接口获取JWT令牌
   - 后续请求在Header中携带令牌: Authorization: Bearer <token>
2. 权限控制
   
   - 使用@RequiresAuthentication注解要求认证
   - 使用@RequiresRoles注解要求特定角色
   - 使用@RequiresPermissions注解要求特定权限
## 注意事项
1. 项目中的密钥(JWT_SECRET)仅用于演示,生产环境请修改为安全的密钥
2. 默认用户验证逻辑需要根据实际需求对接数据库
3. 生产环境部署时需要配置CORS和其他安全设置

这个README.md文件全面介绍了项目的主要功能、技术栈、项目结构、API接口、使用方法等信息,可以帮助其他开发者快速理解和使用这个项目。您可以根据实际需求对内容进行调整和补充。

 

相关文章:

  • 怎样免费开发部署自己的网站?
  • react深入2 - react-redux
  • MySQL——6、内置函数
  • 2025年- H31-Lc139- 242.回文链表(快慢指针)---java版--需2刷
  • c++编写中遇见的错误
  • 如何利用DeepSeek提升工作效率
  • LaTeX OCR - 数学公式识别系统
  • matlab分段函数
  • 大模型解析:AI技术的现状、原理与应用前景
  • Ubuntu搭建NFS服务器的方法
  • 【Linux】第十八章 调优系统性能
  • 面试中的线程题
  • 系统架构设计(十二):统一过程模型(RUP)
  • 【设计模式】- 行为型模式2
  • 深度解析:AWS NLB 与 ALB 在 EKS 集群中的最佳选择
  • HarmonyOS:应用文件访问(ArkTS)
  • ACL完全解析:从权限管理到网络安全的核心防线
  • SMT贴片加工工艺优化与效率提升
  • 基于FPGA的电子万年历系统开发,包含各模块testbench
  • 开启健康生活的多元养生之道
  • 高温最强时段来了!北方局地高温有明显极端性
  • 盲人不能刷脸认证、营业厅拒人工核验,央媒:别让刷脸困住尊严
  • 广东高州发生山体滑坡,造成2人遇难4人送医救治1人失联
  • 北斗系统全面进入11个国际组织的标准体系
  • 专利申请全球领先!去年我国卫星导航与位置服务产值超5700亿
  • 新时代,新方志:2025上海地方志论坛暨理论研讨会举办