当前位置: 首页 > news >正文

仿照若依框架进行数据权限控制

用的方案其实就是“若依”那套思路,不过自己做了点裁剪,核心就四步——注解标识、AOP 拦截、SQL 拼接、MyBatis 消费。下面按执行顺序捋一遍:

  1. 打标记
    在需要控制权限的 Mapper 方法上贴一个自定义注解@DataScope,里面两个值:

    @DataScope(deptAlias="d",userAlias="u")List<Xxx>selectList(Xxxparam);

    这样一眼就能看出“这个方法要走数据权限”。

  2. AOP 切面
    专门写了一个DataScopeAspect,进入方法之前先跑:

    • 清理 ThreadLocal,防止线程复用串数据;
    • 从 Spring Security 上下文里拿当前登录用户,包括他的角色、部门 ID、用户 ID;
    • 如果是超级管理员,直接放行;否则根据角色提前配置好的“数据范围”枚举拼 SQL 片段,比如“本部门及以下”就用find_in_set(ancestors),“仅本人”就create_by = #{userId}
  3. 把条件塞进实体
    所有实体都继承BaseEntity,里面有个临时字段dataScope。切面通过反射把第 2 步拼好的 SQL 片段塞进去,再往下传。

  4. MyBatis 消费
    XML 里统一加一句:

    <iftest="dataScope != null and dataScope !=''">${dataScope}</if>

    真正发到数据库的 SQL 就带上了权限过滤条件,返回的数据自然就是当前用户能看的那部分。


亮点补充

  • 对业务代码零侵入,只在 Mapper 层加注解,Service 层无感知。
  • SQL 片段统一维护,换需求只改枚举,不动业务。
  • 线程级 ThreadLocal + 用完即清理,没有内存泄漏风险。
  • 后面做 SaaS 多租户时,把“租户 ID”字段也加进来,同一套切面直接复用。

一句话总结
“注解一贴,切面自动把‘部门/个人’范围拼成 SQL,MyBatis 尾巴一接,数据权限就生效,全程业务代码无感,改需求只改配置。”

http://www.jsqmd.com/news/100018/

相关文章:

  • 视频推流平台EasyDSS无人机推流直播技术在野外监测中的智能应用
  • 2025球轴承实力制造商TOP5权威推荐:甄选高品质厂家,助 - 工业推荐榜
  • LobeChat能否持续学习?在线更新能力探讨
  • LobeChat能否支持WebRTC?实时音视频通话功能展望
  • 【赵渝强老师】达梦数据库的逻辑存储结构
  • 2025高空安装公司TOP5权威推荐:高空安装哪家技术好? - myqiye
  • 《12个月服务期!黑龙江炉渣外运处置项目公开招标》
  • 2025年南京地区适合婚礼宴会的餐厅推荐,浪漫婚礼餐厅解析 - mypinpai
  • 详细介绍:Flink Oracle CDC Connector 实战指南
  • 一篇搞定DevBox开源项目在开源鸿蒙PC安装运行
  • synopsys axi vip疑问
  • 2025铜包钢服务商实力推荐,看看哪家质量可靠? - 工业推荐榜
  • 2025铜包钢服务商实力推荐,看看哪家质量可靠? - 工业推荐榜
  • Kotaemon集成GraphRAG构建智能文档问答系统
  • 出境游旅行社哪家服务好?从服务体验看选择方向 - 品牌排行榜
  • 【赵渝强老师】在Docker中运行达梦数据库
  • 2025法兰轴承生产厂TOP5权威推荐:技术/口碑/案例三维 - mypinpai
  • Flux.1-dev高清修复ControlNets上线
  • LobeChat能否集成GitHub?代码协作更高效
  • python实现密码暴力破解
  • 2025高空特种工程服务商TOP5权威推荐:盈尚环境工程(杭 - myqiye
  • Go Defer语句详解
  • npm安装常见错误及解决方案汇总(YOLO专用)
  • 2025年国产电脑操作系统推荐:银河麒麟为何成为党政机关首选?
  • 2025少儿编程机构实测:3家高口碑品牌+5个避坑技巧,家长直接抄作业 - 品牌测评鉴赏家
  • Git安装配置指南:集成清华镜像提升TensorFlow项目克隆效率
  • LobeChat能否生成KPI指标?绩效考核智能化
  • Flutter 2025 国际化与本地化工程:从多语言到文化适配,打造真正全球化的应用
  • AI证书口碑好排名
  • 2025年高性价比在线少儿编程机构测评:这5家凭什么让家长放心买单? - 品牌测评鉴赏家