给大家展示一下效果,
官方地址:https://mermaid.nodejs.cn/
官方开发地址:https://mermaid.nodejs.cn/intro/#google_vignette
同时IDEA也有这个插件可以实时修改和查看预览。


基于Spring SAS-OAuth2的全链路安全架构图.mermaid
graph LR
%% ==================== 样式定义 ====================
classDef user fill:#E1F5FE,stroke:#0288D1;
classDef app fill:#E8F5E9,stroke:#388E3C;
classDef data fill:#F3E5F5,stroke:#8E24AA;
classDef security fill:#FFEBEE,stroke:#E53935,dashed;
classDef infra fill:#FFF3E0,stroke:#FB8C00;
%% ==================== 用户终端层 ====================
subgraph 用户层["客户端访问"]
浏览器:::user
移动APP:::user
API客户端:::user
小程序:::user
end
%% ==================== 安全接入层 ====================
subgraph 接入层["安全网关"]
Nginx代理:::infra
WAF防火墙:::infra
流量审计:::infra
end
%% ==================== Spring安全体系 ====================
subgraph 安全层["安全控制核心"]
SecurityFilterChain:::security
SAS授权中心:::security
SessionRegistry:::security
ACL决策服务:::security
密码加密器:::security
end
%% ==================== 业务应用层 ====================
subgraph 应用层["SpringBoot单体服务"]
控制器:::app
服务模块:::app
DAO组件:::app
缓存管理:::app
end
%% ==================== 混合数据层 ====================
subgraph 数据层["数据存储"]
subgraph Redis集群["Redis高可用"]
Redis主节点:::data
Redis从节点1:::data
Redis从节点2:::data
end
subgraph 高斯集群["高斯数据库"]
高斯主节点:::data
高斯从节点1:::data
高斯从节点2:::data
end
end
%% ==================== 核心流程 ====================
用户层 -->|HTTPS请求| 接入层
接入层 -->|流量过滤| 安全层
%% 认证授权流
SecurityFilterChain -->|会话管理| SessionRegistry
SessionRegistry -->|存储加密Token| Redis主节点
SAS授权中心 -->|SM3密码加密| 密码加密器
SAS授权中心 -->|客户端验证| 高斯主节点
ACL决策服务 -->|权限校验| 高斯主节点
%% 业务数据流
控制器 -->|业务处理| 服务模块
服务模块 -->|数据操作| DAO组件
DAO组件 -->|JDBC连接| 高斯主节点
缓存管理 -->|本地缓存| 服务模块
%% 数据同步
Redis主节点 -.->|主从同步| Redis从节点1
Redis主节点 -.->|主从同步| Redis从节点2
高斯主节点 -.->|数据同步| 高斯从节点1
高斯主节点 -.->|数据同步| 高斯从节点2
%% ==================== 安全增强模块 ====================
subgraph 安全增强["安全加固措施"]
direction TB
S1["会话固定攻击防护"]
S2["CSRF令牌校验"]
S3["密码SM3加密"]
S4["Token SM4加密"]
S5["请求签名验证"]
end
%% ==================== 监控审计体系 ====================
subgraph 监控层["审计追踪"]
日志采集 --> ELK看板
行为审计 --> 风险预警
流量审计 --> 攻击画像
end
%% ==================== 国产化标注 ====================
style 数据层 stroke:#E53935,stroke-width:2px
style 安全层 stroke:#E53935,stroke-width:2px
style Redis集群 stroke:#E53935
style 高斯集群 stroke:#E53935
%% ==================== 组件关联标注 ====================
SecurityFilterChain -.-> S1
SAS授权中心 -.-> S2
密码加密器 -.-> S3
SessionRegistry -.-> S4
WAF防火墙 -.-> S5
基于Spring SAS-OAuth2体系的纵向时序图.mermaid
sequenceDiagram
participant 用户
participant 前端
participant SAS授权中心
participant 业务模块
participant Redis集群
participant 高斯数据库
rect rgba(200,200,255,0.1)
用户->>前端: 1. 访问/login页面
前端->>SAS授权中心: 2. 请求授权端点
SAS授权中心->>用户: 3. 返回登录表单(含CSRF)
用户->>SAS授权中心: 4. 提交账号密码
SAS授权中心->>SAS授权中心: 5. SM3加密密码
SAS授权中心->>高斯数据库: 6. 查询用户凭证
高斯数据库-->>SAS授权中心: 7. 返回加密密码
SAS授权中心->>SAS授权中心: 8. 密码比对验证
SAS授权中心->>Redis集群: 9. 生成加密Token(SM4)
Redis集群-->>SAS授权中心: 10. 存储Token成功
SAS授权中心->>前端: 11. 返回授权码(302重定向)
前端->>SAS授权中心: 12. 换取AccessToken
SAS授权中心->>Redis集群: 13. 验证授权码
Redis集群-->>SAS授权中心: 14. 返回关联Token
SAS授权中心->>前端: 15. 下发加密AccessToken
前端->>用户: 16. 存储至SecureCookie
end
rect rgba(200,255,200,0.1)
用户->>前端: 17. 携带Token请求/resource
前端->>业务模块: 18. 传递加密Token
业务模块->>业务模块: 19. 执行安全过滤器链:
Note over 业务模块: a) CSRF校验<br/>b) Token解密(SM4)<br/>c) 权限预加载
业务模块->>Redis集群: 20. 验证Token有效性
Redis集群-->>业务模块: 21. 返回用户权限
业务模块->>高斯数据库: 22. 查询业务数据
高斯数据库-->>业务模块: 23. 返回加密数据
业务模块->>业务模块: 24. 数据解密处理
业务模块->>前端: 25. 返回响应(附加审计追踪ID)
前端->>用户: 26. 渲染页面
end
rect rgba(255,200,200,0.1)
用户->>前端: 27. 发起注销请求
前端->>SAS授权中心: 28. 调用/revoke端点
SAS授权中心->>Redis集群: 29. 删除Token记录
SAS授权中心->>Redis集群: 30. 加入黑名单
Redis集群-->>SAS授权中心: 31. 操作确认
SAS授权中心->>业务模块: 32. 广播Token失效
业务模块->>业务模块: 33. 清理安全上下文
SAS授权中心->>前端: 34. 返回注销成功
前端->>用户: 35. 清除客户端存储
end
opt Token自动续期
业务模块->>Redis集群: 36. 滑动过期时间
Redis集群-->>业务模块: 37. 更新有效期
end
opt 跨域SSO
前端->>SAS授权中心: 38. 携带跨域Ticket
SAS授权中心->>Redis集群: 39. 验证Ticket
Redis集群-->>SAS授权中心: 40. 返回主Token
SAS授权中心->>前端: 41. 签发新域Token
end
opt 全链路加密
Note over SAS授权中心,业务模块: 42. 加密环节:<br/>- 密码SM3哈希<br/>- Token SM4加密<br/>- 数据字段加密
end

1062

被折叠的 条评论
为什么被折叠?



