阳少的工具站 阳少的工具站
首页
  • 项目简介
  • 项目部署
  • 快速上手
  • 功能使用

    • 代码生成
    • 权限控制
    • 数据权限
问答
💖支持
GitHub (opens new window)
首页
  • 项目简介
  • 项目部署
  • 快速上手
  • 功能使用

    • 代码生成
    • 权限控制
    • 数据权限
问答
💖支持
GitHub (opens new window)
  • 指南

    • 项目简介
    • 项目部署
    • 快速上手
  • 功能使用

    • 代码生成
    • 权限控制
      • 权限控制方案
        • 为什么选择 Sa-Token?
      • Sa-Token 的使用实践
        • 白名单配置的设计
    • 数据权限
  • 指南
  • 功能使用
gyv12345@163.com
2022-09-17
目录

权限控制

# 权限控制方案

在 yt4j 项目中,我们使用了 Sa-Token 作为权限控制框架。

# 为什么选择 Sa-Token?

最初我们采用的是 Spring Security + JWT 的组合,但在实际开发中逐渐发现一些问题:

  • 配置复杂,调试成本高;
  • 权限信息最终还是落地到 Redis,没有发挥 JWT 的无状态优势;
  • 某些场景下 Spring Security 的扩展性不如预期。

基于这些考虑,我们调研了 JustAuthPlus 和 Sa-Token,最终选择了 Sa-Token,主要原因是:

  • 上手简单,API 友好;
  • 支持丰富的登录模式和权限验证方式;
  • 对于我们现有的 Redis 结构兼容性好;
  • 更加轻量,适合中小型系统的权限需求。

# Sa-Token 的使用实践

# 白名单配置的设计

在项目中,我们将权限控制拆分到了不同模块:

  • gateway 网关服务
  • yt4j-sa-token 权限处理模块

为了统一权限放行规则,我们分别在两个项目中都定义了「白名单配置类」。原因如下:

  • 解耦设计:gateway 与后端服务使用的是不同的模型(Reactor 与 Servlet),Sa-Token 也区分了对应的依赖包;
  • 避免配置冲突:各自维护独立的白名单列表,更符合模块化设计思路;
  • 便于单独扩展:若未来需要独立部署或接入其他服务,不会造成权限逻辑混乱。
上次更新: 2025/04/22, 08:45:24
代码生成
数据权限

← 代码生成 数据权限→

Theme by Vdoing | Copyright © 2020-2025 yt4j | 豫ICP备2024074107号 | 豫公网安备41030402000167号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式