Soul 网关源码学习(4) - 数据库设计 (插件除外部分)

Soul Admin 数据库设计 (插件以外部分)

在阅读 Soul Admin 部分源码的过程中, 除了官方文档提及到的数据模型外, 在代码中, 还看到了有如下的数据库模型:

模型名称 模型描述
AppAuth 应用认证信息
AuthParam 应用认证参数信息
AuthPath 应用认证路径信息
DashboardUser Soul Admin 控制台登录用户
MetaData 元数据信息
SoulDict Soul 字典表信息

数据库模型图

soul database model

数据库表字段说明

  • 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 网关数据模型的理解。

文章作者: David Liu
文章链接: https://davidliu.now.sh/2021/01/18/soul_database_design_partII/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 David Liu's Blog