【技术实现步骤摘要】
一种多服务细颗粒度数据域控制方法、系统、设备及介质
[0001]本专利技术涉及数据域访问控制领域,具体地说,涉及一种多服务细颗粒度数据域控制方法、系统、设备及介质。
技术介绍
[0002]权限主要分为两种:功能权限和数据权限。目前,SpringSecurity等框架已经较好地解决了功能权限的问题,但对于数据权限而言,传统模型中使用分支判断等硬编码方式把权限逻辑加入到业务代码里面的方式是使用最多的,但是硬编码形式的缺点也是显而易见的,表现为耦合度高、评估困难、系统组件重用率低、后续系统维护成本高,甚至导致整个系统整体结构变动。
[0003]信息化时代数据是重要的粮食,数据的安全性也尤为重要,因此对数据分域分权控制访问为一项基础设施。目前数据域访问控制模型有:ACL(Access Control List,访问控制列表)模型和RBAC(Role
‑
Based Access Control,基于角色访问控制)模型。ACL模型的灵活性差,RBAC的颗粒度粗,并且两种模型都在单体服务中应用居多,因此亟需一种可 ...
【技术保护点】
【技术特征摘要】
1.一种多服务细颗粒度数据域控制方法,其特征在于,包括以下步骤:步骤1:定义数据控制对象,配置与数据控制对象对应的数据域标签;步骤2:获取数据结构,并将数据结构和数据域标签存储至一级缓存中;步骤3:定义DataDomainInterceptor类作为拦截器,拦截数据结构和数据域标签,在进行多服务调用时生成包含数据域标签的令牌调用其他服务。2.如权利要求1所述的一种多服务细颗粒度数据域控制方法,其特征在于,所述步骤1具体包括以下步骤:步骤11:定义访问对象;步骤12:定义数据控制对象,确定受访问对象对应的数据结构;步骤13:定义控制值,所述控制值用于指示所述访问对象能否访问数据控制对象的具体值,将访问对象、数据控制对象、控制值构成一个数据域标签;当进行数据变更时解析所述数据域标签,并将所述数据域标签补充到数据保存时的结构中,当进行数据访问时,解析所述数据域标签确定数据权限。3.如权利要求2所述的一种多服务细颗粒度数据域控制方法,其特征在于,所述步骤2具体包括以下步骤:步骤21:定义ApplicationRunner接口,通过SqlSession类获取数据结构,将连接信息作为唯一键,并将唯一键和数据结构存储至一级缓存中;步骤22:定义DomainParam线程本地类;所述DomainParam线程本地类包含InheritableThreadLocal可继承的线程本地实体,所述InheritableThreadLocal线程本地实体中定义的属性用于存储数据结构和数据域标签,在进程接收到请求时进行以下操作:操作一:从请求中获取数据域标签,并保存在InheritableThreadLocal线程本地实体的数据域标签属性中;操作二:从一级缓存中获取数据结构,并保存在InheritableThreadLocal线程本地实体的数据域结构属性中。4.如权利要求3所述的一种多服务细颗粒度数据域控制方法,其特征在于,在将数据结构存储至一级缓存中前,通过唯一键判断当前缓存中是否存在数据结构,若存在则删除,若不存在则跳过。5.如权利要求3所述的一种多服务细颗粒度数据域控制方法,其特征在于,所述步骤3具体包括以下步骤:步骤31:定义DataDomainInterceptor类作为拦截器,拦截数据的更改操作;步骤32:定义DomainAspect类作为AOP切面,拦截从控制层接收的界面,获取令牌信息并存储至一级缓存中;步骤33:定义FeignInterceptor类作为请求拦截器,当A服务远程调用B服务时,在发出请求之前,将A服务中的令牌信息存储至请求拦截器中;步...
【专利技术属性】
技术研发人员:陈吉鑫,陈欣,张思俊,黄勇,华越,
申请(专利权)人:中电九天智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。