重要提醒
⚠️ 请勿公开你的代码 - 本课程遵循学术诚信原则,代码仅供个人学习使用。
概述
本课程所有代码基于 Java 编写。在开始项目之前,请确保你具备以下基础:
- Java SE 基础:面向对象编程、集合框架、异常处理
- Java Web 基础:Spring Boot、Spring MVC、RESTful API
- 数据库基础:SQL 基本操作、MyBatis 使用
- 缓存基础:Redis 基本概念和操作
本项目严格按照 OAuth 2.0 协议标准实现,主要基于授权码模式(Authorization Code Flow)。
必读材料
在开始实验前,请仔细阅读以下材料:
- 
OAuth 2.0 核心概念 
- 
授权码模式深入理解 - 重点关注:授权请求、授权响应、令牌请求、令牌响应的完整流程
 
- 
安全增强特性 
你的任务
本实验采用**“完形填空”**的形式:
- 理解项目架构:阅读提供的框架代码,理解各模块的职责
- 完成关键函数:在标记了 // TODO的地方实现核心逻辑
- 通过单元测试:每个实验都配有 JUnit 测试用例
- 手动测试验证:使用 Postman 或其他工具进行端到端测试
实验评估方式
- 自动化测试:每个模块都有对应的单元测试(约 60%)
- 功能验证:手动测试关键流程(约 30%)
- 代码质量:代码规范性和安全性(约 10%)
重要提醒:本项目没有完全自动化的评分系统,请以学到知识为目标,诚信完成实验。
编程环境准备
1. 阅读实验网站
浏览以下内容:
- ✅ Project 1:环境搭建与系统设计
- ✅ 实验概述和总体架构
- ✅ 参考资料和拓展阅读
2. 配置开发环境
确保你的环境包含以下工具:
| 工具 | 版本要求 | 用途 | 
|---|---|---|
| JDK | 17+ | Java 运行环境 | 
| Maven | 3.8+ | 项目构建工具 | 
| MySQL | 8.0+ | 关系数据库 | 
| Redis | 6.0+ | 缓存服务器 | 
| IntelliJ IDEA | 最新版 | 推荐 IDE | 
| Git | 最新版 | 版本控制 | 
| Postman | 最新版 | API 测试工具 | 
环境验证清单:
- 能够编译和运行 Spring Boot 项目
- 能够连接 MySQL 数据库
- 能够连接 Redis 服务器
- 能够使用调试器设置断点
- 能够运行 JUnit 测试用例
3. 跨平台注意事项
本项目理论上跨平台兼容(Windows、Linux、macOS),但存在一些已知问题:
- Windows:路径分隔符使用 \,注意配置文件中的路径
- macOS:部分依赖需要使用 Homebrew 安装
- Linux:推荐使用 Ubuntu 20.04+ 或类似发行版
如遇 macOS 特定问题,请在 GitHub Issues 中提问。
学习建议
遇到问题时的解决流程
1. 仔细阅读错误信息和堆栈跟踪
   ↓
2. 检查自己的代码逻辑(特别是"想当然"的部分)
   ↓
3. 查阅官方文档(Spring Boot、MyBatis、Redis 等)
   ↓
4. 使用搜索引擎(推荐 Google、Stack Overflow)
   ↓
5. 尝试 AI 辅助工具(ChatGPT、GitHub Copilot 等)
   ↓
6. 在 GitHub Issues 提问(附上详细的错误信息和尝试过的方法)
高效提问的技巧
不推荐的提问方式:
"我的代码不能运行,怎么办?"
推荐的提问方式:
"我在实现 LocalTokenManager.refresh() 方法时遇到了空指针异常。
我已经检查了缓存初始化代码,并尝试了以下方法:
1. 在 refresh 方法开始处添加了空值检查
2. 确认了构造函数中缓存已正确初始化
错误堆栈信息如下:
[粘贴完整的堆栈跟踪]
测试代码:
[粘贴相关测试代码]
请问可能是什么原因?"
核心原则
- 机器永远是对的:编译器和测试框架的错误提示是宝贵的调试信息
- 先理解再实现:不要盲目复制代码,理解每一行的作用
- 小步快跑:每完成一个小功能就运行测试,不要积累太多未测试的代码
- 善用调试器:学会使用断点、单步执行、变量监视等调试技巧
- 阅读源码:遇到框架问题时,尝试阅读 Spring Boot 的源码
获取帮助
GitHub Issues
在项目仓库提交 Issue 时,请包含以下信息:
- 问题描述:简洁明了地说明问题
- 复现步骤:如何触发该问题
- 预期行为:你期望发生什么
- 实际行为:实际发生了什么
- 环境信息:操作系统、JDK 版本、IDE 版本等
- 错误日志:完整的错误堆栈信息
- 已尝试方法:你已经尝试过哪些解决方案
讨论区
对于一般性问题(如概念理解、最佳实践等),可以在 GitHub Discussions 中讨论。
预期收获
完成本课程后,你将:
✅ 深入理解 OAuth 2.0 授权框架
✅ 掌握单点登录(SSO)的实现原理
✅ 学会设计安全的认证和授权系统
✅ 掌握 JWT、Token 管理等关键技术
✅ 提升 Spring Boot 企业级应用开发能力
✅ 培养阅读规范文档(RFC)的能力
预计学习时间:每周 8-12 小时,共 6 周
祝你学习顺利!有问题随时在 GitHub 上提 Issue。