# fortress-admin **Repository Path**: libingquan/fortress-admin ## Basic Information - **Project Name**: fortress-admin - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-09 - **Last Updated**: 2026-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Fortress Admin — 后台管理系统 > RBAC 权限模型后台管理系统,Java Web 学习路线项目一。 --- ## 项目定位 这是 Java Web 转行学习路线中的第一个项目,目标是在 2 周内(第 5-6 周)完成一个**可用 RBAC 权限模型的后台管理系统**,作为简历上的基础工程能力展示。 ## 核心功能 | 模块 | 功能 | 说明 | |------|------|------| | 用户管理 | 增删改查、禁用/启用 | 系统用户的基础 CRUD | | 角色管理 | 创建角色、分配菜单权限 | 角色是权限的集合 | | 菜单管理 | 树形菜单(目录→菜单→按钮三级) | 动态菜单,前端根据权限渲染 | | 登录鉴权 | JWT Token + 接口拦截器 | 无状态认证,Token 含用户信息和角色 | ## 技术栈 | 技术 | 版本 | 用途 | |------|------|------| | Java | 17+ | 主力语言 | | Spring Boot | 3.x | 应用框架 | | Spring Security | 6.x | 安全框架(可选,也可手写拦截器) | | MyBatis-Plus | 3.5+ | ORM,简化 CRUD | | MySQL | 8.0+ | 关系数据库 | | Redis | 7.x | Token 缓存、权限缓存 | | JWT | jjwt 0.12+ | 无状态认证令牌 | | Maven | 3.9+ | 构建工具 | ## 环境要求 | 环境 | 版本 | 必须 | 说明 | |------|------|------|------| | JDK | 17+ | ✅ | `java -version` 确认 | | Maven | 3.9+ | ✅ | `mvn -version` 确认 | | MySQL | 8.0+ | ✅ | Docker 或本地安装 | | Redis | 7.x | ✅ | Docker 或本地安装 | | Docker | 最新 | 推荐 | 用于运行 MySQL 和 Redis | > 💡 首次配置建议使用 SDKMAN 安装 JDK 和 Maven,MySQL 和 Redis 用 Docker 运行。 ### 环境检查 ```bash # 运行环境检测脚本,一键确认所有依赖是否就绪 bash scripts/check-env.sh ``` ### 环境安装参考 **JDK 17(SDKMAN 方式)** ```bash curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install java 17.0.12-tem ``` **Maven(SDKMAN 方式)** ```bash sdk install maven 3.9.6 ``` **Maven 国内镜像加速(可选)** 编辑 `~/.m2/settings.xml`: ```xml aliyun central Aliyun Maven https://maven.aliyun.com/repository/public ``` **MySQL + Redis(Docker 方式)** ```bash docker run -d --name mysql-fortress \ -e MYSQL_ROOT_PASSWORD=123456 \ -e MYSQL_DATABASE=fortress_admin \ -p 3306:3306 mysql:8.0 docker run -d --name redis-fortress \ -p 6379:6379 redis:7-alpine ``` ## 项目结构 ``` fortress-admin/ ├── sql/ │ └── schema.sql # 数据库初始化脚本 ├── src/main/java/com/fortress/ │ ├── FortressAdminApplication.java │ ├── config/ │ │ ├── WebMvcConfig.java # 拦截器注册 │ │ └── MyBatisPlusConfig.java # 分页插件等 │ ├── common/ │ │ ├── Result.java # 统一返回格式 │ │ ├── ResultCode.java # 状态码枚举 │ │ └── GlobalExceptionHandler.java # 全局异常处理 │ ├── security/ │ │ ├── JwtUtil.java # JWT 生成/解析工具 │ │ ├── AuthInterceptor.java # 登录拦截器 │ │ └── PermissionInterceptor.java # 权限拦截器 │ ├── controller/ │ │ ├── AuthController.java # 登录/登出 │ │ ├── UserController.java # 用户管理 │ │ ├── RoleController.java # 角色管理 │ │ └── MenuController.java # 菜单管理 │ ├── service/ │ │ ├── UserService.java │ │ ├── RoleService.java │ │ └── MenuService.java │ ├── mapper/ │ │ ├── UserMapper.java │ │ ├── RoleMapper.java │ │ └── MenuMapper.java │ └── entity/ │ ├── SysUser.java │ ├── SysRole.java │ ├── SysMenu.java │ ├── SysUserRole.java │ └── SysRoleMenu.java ├── src/main/resources/ │ ├── application.yml │ └── db/ │ └── data.sql # 初始化数据(管理员账号等) ├── docs/ │ ├── architecture.md # 架构设计 │ └── api-design.md # 接口设计 └── pom.xml ``` ## 快速开始 ### 1. 环境检查 ```bash bash scripts/check-env.sh ``` ### 2. 一键启动 ```bash bash scripts/start.sh ``` 该脚本会自动完成:启动 MySQL/Redis 容器 → 初始化数据库 → 编译并启动应用。 ### 3. 测试 ```bash # 登录 curl -X POST http://localhost:8080/api/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"admin123"}' # 获取用户列表(需替换 TOKEN) curl http://localhost:8080/api/users \ -H "Authorization: Bearer " ``` ### 4. 停止 ```bash bash scripts/stop.sh ``` ## 阶段一验收标准 - [ ] 用户管理 CRUD 完整可用 - [ ] 角色管理 + 菜单权限分配可用 - [ ] 树形菜单接口正常返回 - [ ] JWT 登录/鉴权流程完整 - [ ] 不同角色登录后,接口权限隔离生效 - [ ] 代码已推送到 GitHub(公开仓库) - [ ] 能对着代码讲清楚:请求从浏览器到数据库再返回的完整链路 ## 设计文档 - [数据库设计](sql/schema.sql) - [架构设计](docs/architecture.md) - [接口设计](docs/api-design.md) ## 来源 本项目设计来自 [Java Web 转行学习路线](../../projects/learning-java-web/学习路线.md) 第一阶段项目一。