摘要:设计思想数据权限是在功能权限的基础上面进一步的扩展,比如可以查看订单属于功能权限的范围,但是可以查看哪些订单就是数据权限的工作了。本方案中即可根据当前用户的数据范围动态的组装成作为所有查询的附加逻辑。
设计思想:
【数据权限】是在【功能权限】的基础上面进一步的扩展,比如可以查看订单属于【功能权限】的范围,但是可以查看哪些订单就是【数据权限】的工作了。
根据不同的角色定义一些规则,将规则值保存起来。最终将值 转化成执行脚本里面的值。
Mybatis拦截器的一个作用就是可以拦截某些方法的调用,可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。
Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。
本方案中即可根据当前用户的数据范围动态的组装成sql作为所有查询sql的附加逻辑。
实现:
1,首先找到拦截时机
2,根据拦截器的注解声明,拦截的是Executor对象query方法
3,根据mabatis源码,取出在mappedStatement的SQL语句
4,取出sql语句,根据当前用户,获取规则,将条件追加到sql中
5,将增强后的sql再放回mappedStatement中
拦截器,加入一些权限处理,最后附加到SQL中
取到当前登陆人信息
这里取登陆人信息,用了两种方式:
一种用 threadlocal, 同一个线程把变量传过来
另一种直接在dao层用参数传过来,偷懒了,没有实现线程之前变量传递,当时情况是用户提交一个查询请求,导出直接提交给另一个线程 springbatch去处理,所以就把登陆了人的信息直接传到dao参数上了
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68464.html
摘要:解决方案如图所示,将军令分块,数据内容权限平台审批流平台审计日志平台提供各种灵活可插拔的服务,支持在通用服务的基础基础上进行定制开发。 背景 在大数据时代,数据已经成为公司的核心竞争力。此前,我们介绍了美团酒旅起源数据治理平台的建设与实践,主要是通过各种数据分析挖掘手段,为公司发展决策和业务开展提供数据支持。 近期,业内数据安全事件频发,给相关企业造成了无可挽回的损失,更为数据安全防护...
摘要:解决方案如图所示,将军令分块,数据内容权限平台审批流平台审计日志平台提供各种灵活可插拔的服务,支持在通用服务的基础基础上进行定制开发。 背景 在大数据时代,数据已经成为公司的核心竞争力。此前,我们介绍了美团酒旅起源数据治理平台的建设与实践,主要是通过各种数据分析挖掘手段,为公司发展决策和业务开展提供数据支持。 近期,业内数据安全事件频发,给相关企业造成了无可挽回的损失,更为数据安全防护...
摘要:处在局域网之内的,由于有局域网出入口的网络设备的基本保护,相对于暴露在广域网中要安全不少,主要威胁对象基本控制在了可以接入局域网的内部潜在威胁者,和极少数能够突破最外围防线局域网出入口的安全设备的入侵者。 前言 对于任何一个企业来说,其数据库系统中所保存数据的安全性无疑是非常重要的,尤其是公司的有些商业数据,可能数据就是公司的根本。 失去了数据,可能就失去了一切 本章将针对mysql...
阅读 3675·2021-11-18 13:19
阅读 1088·2021-10-11 10:58
阅读 3262·2019-08-29 16:39
阅读 3107·2019-08-26 12:08
阅读 1995·2019-08-26 11:33
阅读 2436·2019-08-23 18:30
阅读 1275·2019-08-23 18:21
阅读 2497·2019-08-23 18:18