菜单

用户与角色管理

相关源文件

本文档介绍了 Mall 电商平台后台管理模块的用户与角色管理系统。该系统为后台管理员提供身份验证、授权和访问控制。它涵盖了管理员用户注册、角色管理、资源权限分配以及菜单授权。

如需了解面向客户的用户管理,请参阅会员服务

1. 系统架构

用户与角色管理系统基于基于角色的访问控制 (RBAC) 模型构建,在该模型中,权限被分配给角色,而角色又被分配给用户。

来源

2. 认证流程

本系统使用 JWT (JSON Web Token) 进行无状态认证。认证过程如下:

来源

3. 管理员用户管理

3.1 用户注册

可以通过注册 API 创建新的管理员账户。

来源

3.2 管理员用户操作

本系统提供了一套全面的管理员用户管理接口。

端点方法描述
/admin/registerPOST注册新管理员用户
/admin/loginPOST管理员登录
/admin/refreshTokenGET刷新 JWT Token
/admin/infoGET获取当前用户信息
/admin/logoutPOST退出登录
/admin/listGET带分页搜索管理员用户
/admin/{id}GET获取指定管理员用户详情
/admin/update/{id}POST更新管理员用户信息
/admin/delete/{id}POST删除管理员用户
/admin/updateStatus/{id}POST启用/禁用管理员用户
/admin/updatePasswordPOST更新密码
/admin/role/updatePOST分配角色给管理员
/admin/role/{adminId}GET获取管理员的角色

来源

3.3 密码管理

系统包含安全的密码处理机制。

  1. 密码使用 Spring Security 的 PasswordEncoder 进行加密。
  2. 更新密码需要验证旧密码。
  3. 失败的密码尝试会被记录。

密码更新过程会为各种错误情况返回不同的状态码。

  • -1:参数无效
  • -2:用户未找到
  • -3:旧密码不正确
  • 1:成功

来源

4. 角色管理

角色用于对权限进行分组,并将它们分配给管理员。

4.1 角色 CRUD 操作

以下接口用于管理角色:

端点方法描述
/role/createPOST创建新角色
/role/update/{id}POST更新角色
/role/deletePOST删除角色(批量)
/role/listGET带分页获取角色
/role/listAllGET获取所有角色
/role/updateStatus/{id}POST启用/禁用角色

来源

4.2 角色分配

管理员可以被分配多个角色。角色分配过程如下:

来源

5. 资源和菜单管理

5.1 资源 (API 端点)

资源代表用户可以访问的 API 端点。资源被分配给角色,而角色又被分配给用户。

资源分配 API

端点方法描述
/role/allocResourcePOST将资源分配给角色
/role/listResource/{roleId}GET获取角色的资源

来源

5.2 菜单项 (UI 导航)

菜单代表了后台界面的导航结构。与资源类似,菜单也被分配给角色。

菜单分配 API

端点方法描述
/role/allocMenuPOST将菜单分配给角色
/role/listMenu/{roleId}GET获取角色的菜单

当管理员登录时,系统会返回他们的菜单结构。

来源

6. 授权流程

当用户尝试访问受保护的资源时,系统会验证其授权。

AdminUserDetails 类封装了管理员用户详细信息和资源,供 Spring Security 进行身份验证和授权。

来源

7. 缓存策略

系统实现缓存以提高常用数据的访问性能。

  1. 管理员用户详情按用户名缓存。
  2. 管理员资源按管理员 ID 缓存。

当数据被修改时,相关的缓存条目会被失效。

  • 更新管理员时:delAdmin(id)
  • 更新角色/资源时:delResourceList(adminId)
  • 更新角色时:delResourceListByRole(roleId)

来源

8. 实体关系

以下图表说明了用户与角色管理系统中实体之间的关系。

来源

9. 与 Spring Security 集成

本系统与 Spring Security 集成以进行身份验证和授权。关键组件如下:

  1. UmsAdminServiceImpl 实现 UserDetailsService 以加载用户详情。
  2. AdminUserDetails 实现 UserDetails 以向 Spring Security 提供用户信息。
  3. JwtTokenUtil 负责 JWT Token 的生成和验证。
  4. 资源映射到系统中的受保护 URL。

JWT Token 包含用户的身份信息,并且是所有受保护端点所必需的。Token 通过 Bearer 方案包含在 Authorization 头中。

来源

总而言之,用户与角色管理系统提供了一个全面、灵活且安全框架,用于根据用户角色和权限控制对 Mall 电商后台的访问。