Mybatis 拦截器实现数据行权限
来源:互联网 发布:淘宝店铺怎么免费装修 编辑:程序博客网 时间:2024/06/14 07:52
最近项目有一个需求:需要针对不同登录用户,同一个接口查看的数据不一样。因为项目采用了mybatis持久化框架,因此想到使用mybatis自带的拦截器实现。
1. 回顾
之前接触的数据行权限一般是在SQL中加入userid=xx之类的条件,但是这样方式有比较大的局限性,侵入性过大,对原有项目的改到也很大。
2.思考
考虑到Mybatis拦截器能够拦截SQL执行的整个过程,因为我们可以考虑SQL执行之前,对SQL进行重写,从而达到数据行权限的目的。
3.问题
真正实现的时候,遇到很多问题,这里列举几个:
1.权限数据重复加载问题
2.分页插件的使用,先计算总数,怎么在这之前拦截,需要拦截多次
3.拦截具体哪个类的哪个方法,如果存在多个拦截器,怎么配置顺序
4.SQL中的数据权限的特殊标识,在mybatis拦截后,消失了
5.加载权限信息,也会被拦截,怎么判断是否加载,再加载问题,循环重复问题
6.Spring boot与mybatis插件的结合问题
7.通用性问题:与项目的耦合度尽量小
阅读全文
1 0
- Mybatis 拦截器实现数据行权限
- 用mybatis 拦截器实现数据权限
- 数据权限实现(Mybatis拦截器+JSqlParser)
- MyBatis拦截器实现分页
- Mybatis SQL拦截器实现
- Mybatis拦截器实现分页
- Mybatis拦截器实现分页
- Mybatis学习- 拦截器-实现分页
- mybatis拦截器实现原理解析
- Mybatis通过拦截器实现分页查询
- 通过Mybatis拦截器实现分页
- MyBatis 拦截器 (实现分页功能)
- mybatis实现拦截器的方法
- Mybatis拦截器实现SQL性能监控
- Mybatis拦截器实现SQL性能监控
- MyBatis实现拦截器分页功能
- MyBatis拦截器实现分页功能
- Mybatis拦截器实现SQL性能监控
- 访问单个节点的删除、链表的分化、打印两个链表的公共值
- [笔记分享] [OS] Linux的进程调度
- Ubuntu 14.04下Android系統源碼編譯
- 织梦dedecms给自定义表单加验证码的开发方法
- 单例模式详解
- Mybatis 拦截器实现数据行权限
- HDU 1285 拓扑排序入门
- java指定延时执行任务的几种常见方法
- 怎么将导航栏始终固定在窗口顶部
- linux下安装redis
- webpack构建性能优化
- webrtc音视频开发
- Java内存分配
- DOS/DDOS攻击的iptables测试,日志查看