Soul Admin 数据库设计 (插件以外部分)
在阅读 Soul Admin 部分源码的过程中, 除了官方文档提及到的数据模型外, 在代码中, 还看到了有如下的数据库模型:
| 模型名称 | 模型描述 |
|---|---|
| AppAuth | 应用认证信息 |
| AuthParam | 应用认证参数信息 |
| AuthPath | 应用认证路径信息 |
| DashboardUser | Soul Admin 控制台登录用户 |
| MetaData | 元数据信息 |
| SoulDict | Soul 字典表信息 |
数据库模型图

数据库表字段说明
app_auth表字段说明
| 表字段名 | 字段描述 |
|---|---|
| id | ID 主键 |
| app_key | 认证 App Key |
| app_secret | 认证 App Secret |
| user_id | 用户 ID |
| phone | 用户手机号 |
| ext_info | 扩展参数 json |
| enabled | 启用状态, 0: 禁用, 1: 启用 |
| date_created | 创建时间 |
| date_updated | 更新时间 |
auth_param表字段说明
| 表字段名 | 字段描述 |
|---|---|
| id | ID 主键 |
| auth_id | 认证应用 ID |
| app_name | 认证应用名称 |
| app_param | 认证应用参数 |
| date_created | 创建时间 |
| date_updated | 更新时间 |
auth_path表字段说明
| 表字段名 | 字段描述 |
|---|---|
| id | ID 主键 |
| auth_id | 认证应用 ID |
| app_name | 认证应用名称 |
| path | 路径信息 |
| enabled | 启用状态, 0: 禁用, 1: 启用 |
| date_created | 创建时间 |
| date_updated | 更新时间 |
soul_dict表字段说明
| 表字段名 | 字段描述 |
|---|---|
| id | ID 主键 |
| type | 字典信息类型 |
| dict_code | 字典信息编码 |
| dict_name | 字典信息名称 |
| dict_value | 字典信息值 |
| desc | 字典信息描述 |
| sort | 字典信息值排序 |
| enabled | 启用状态, 0: 禁用, 1: 启用 |
| date_created | 创建时间 |
| date_updated | 更新时间 |
meta_data表字段说明
| 表字段名 | 字段描述 |
|---|---|
| id | ID 主键 |
| app_name | 应用名称 |
| path | 接口路径信息, 路径信息不能重复 |
| path_desc | 接口路径描述 |
| rpc_type | 接口调用类型 |
| service_name | 应用名称 |
| method_name | 方法名称 |
| parameter_types | 参数类型, 多个值以 ‘,’ 分隔 |
| rpc_ext | RPC 调用扩展信息 |
| enabled | 启用状态, 0: 禁用, 1: 启用 |
| date_created | 创建时间 |
| date_updated | 更新时间 |
dashboard_user表说明
| 表字段名 | 字段描述 |
|---|---|
| id | ID 主键 |
| user_name | 用户名 |
| password | 密码 |
| role | 用户角色 |
| enabled | 启用状态, 0: 禁用, 1: 启用 |
| date_created | 创建时间 |
| date_updated | 更新时间 |
数据库模型详细理解
dashboard_user
dashboard_user 表维护了能够登录 Soul Dashboard 的用户信息, 该信息影响的 Soul Admin 的功能模块有:
Soul Dashboard 登录
用户管理 (Soul Dashboard > 系统管理 > 用户管理) 用户列表展示信息
Soul Dashboard 初始化的用户信息为: user_name = admin, password = 123456, 用户的密码采用的是 AES 加密算法加密, 加密的密钥通过配置文件配置, 配置的 property key 为: soul.aes.secret。 在页面上操作和数据库数据验证过后确定, role 字段标识一个用户是管理员 (role = 0)**还是用户 (role = 1)**, 目前版本管理员和用户登录 Dashboard 后, 能够使用的功能无差异。
Dashboard 用户的信息可以在页面 (Soul Dashboard > 系统管理 > 用户管理) 中编辑, 可操作的功能有: 删除用户, 编辑用户信息 (修改用户名称, 修改密码, 修改用户角色类型, 启用/禁用用户)。 登录相关的源代码的路径在: org.dromara.soul.admin.controller. PlatformController#loginDashboardUser; 用户管理相关的源代码在: org.dromara.soul.admin.controller.DashboardUserController。
meta_data
元数据, 存储的是 Soul 网关接口调用的相关信息, 后面会对元数据相关的数据流进行详细的剖析。
app_auth,auth_param,auth_path
认证相关的信息 (app_auth, auth_param, auth_path 三张表中的数据) 主要会影响到 soul-plugin-sign 在 soul 网关插件链中的执行, 后面会有详细的代码分析。
总结
今天主要结合模型定义和 Soul Dashboard 功能对 Soul Dashboard 中应用认证信息 (app_auth), 应用认证参数信息 (auth_param), 应用认证路径信息 (auth_path), Soul Admin 控制台登录用户 (dashboard_user), 元数据信息 (meta_data) 和 Soul 字典表信息 (soul_dict) 进行了分析。分析的过程中大致翻看了 soul-admin 源码, soul-plugin 的源码, 从明天开始准备开始剖析 soul-admin 部分的源码, 以加深对 Soul 网关数据模型的理解。