CN116226906A - 一种多服务细颗粒度数据域控制方法、系统、设备及介质 - Google Patents
一种多服务细颗粒度数据域控制方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN116226906A CN116226906A CN202211662059.8A CN202211662059A CN116226906A CN 116226906 A CN116226906 A CN 116226906A CN 202211662059 A CN202211662059 A CN 202211662059A CN 116226906 A CN116226906 A CN 116226906A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- data domain
- class
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2435—Active constructs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据域访问控制领域,具体地说,涉及一种多服务细颗粒度数据域控制方法、系统、设备及介质;通过配置与数据控制对象对应的数据域标签,并将数据结构和数据域标签存储至一级缓存中省略了繁琐的数据结构配置,实现一次配置多次使用;并通过定义DataDomainInterceptor类作为拦截器,拦截数据结构和数据域标签,在进行多服务调用时生成包含数据域标签的令牌调用其他服务,实现了对数据域的精确到单条数据单个对象的最小颗粒度控制。
Description
技术领域
本发明涉及数据域访问控制领域,具体地说,涉及一种多服务细颗粒度数据域控制方法、系统、设备及介质。
背景技术
权限主要分为两种:功能权限和数据权限。目前,SpringSecurity等框架已经较好地解决了功能权限的问题,但对于数据权限而言,传统模型中使用分支判断等硬编码方式把权限逻辑加入到业务代码里面的方式是使用最多的,但是硬编码形式的缺点也是显而易见的,表现为耦合度高、评估困难、系统组件重用率低、后续系统维护成本高,甚至导致整个系统整体结构变动。
信息化时代数据是重要的粮食,数据的安全性也尤为重要,因此对数据分域分权控制访问为一项基础设施。目前数据域访问控制模型有:ACL(Access Control List,访问控制列表)模型和RBAC(Role-Based Access Control,基于角色访问控制)模型。ACL模型的灵活性差,RBAC的颗粒度粗,并且两种模型都在单体服务中应用居多,因此亟需一种可应用于多服务并且细颗粒度的数据域管理和实现的方法。
发明内容
本发明针对现有数据权限管理控制方法不能应用于多服务,且颗粒度细化程度不够的问题,提出一种多服务细颗粒度数据域控制方法、系统、设备及介质,通过配置与数据控制对象对应的数据域标签,并将数据结构和数据域标签存储至一级缓存中省略了繁琐的数据结构配置,实现一次配置多次使用;并通过定义DataDomainInterceptor类作为拦截器,拦截数据结构和数据域标签,在进行多服务调用时生成包含数据域标签的令牌调用其他服务,实现了对数据域的精确到单条数据单个对象的最小颗粒度控制。
本发明具体实现内容如下:
一种多服务细颗粒度数据域控制方法,包括以下步骤:
步骤1:定义数据控制对象,配置与数据控制对象对应的数据域标签;
步骤2:获取数据结构,并将数据结构和数据域标签存储至一级缓存中;
步骤3:定义DataDomainInterceptor类作为拦截器,拦截数据结构和数据域标签,在进行多服务调用时生成包含数据域标签的令牌调用其他服务。
为了更好地实现本发明,进一步地,所述步骤1具体包括以下步骤:
步骤11:定义访问对象;所述访问对象包括人员、角色;
步骤12:定义数据控制对象,确定受访问对象对应的数据结构;
步骤13:定义控制值,所述控制值用于指示所述访问对象能否访问数据控制对象的具体值,将访问对象、数据控制对象、控制值构成一个数据域标签;当进行数据变更时解析所述数据域标签,并将所述数据域标签补充到数据保存时的结构中,当进行数据访问时,解析所述数据域标签确定数据权限。
为了更好地实现本发明,进一步地,所述步骤2具体包括以下步骤:
步骤21:定义ApplicationRunner接口,通过SqlSession类获取数据结构,将连接信息作为唯一键,并将唯一键和数据结构存储至一级缓存中;
步骤22:定义DomainParam线程本地类;所述DomainParam线程本地类包含InheritableThreadLocal可继承的线程本地实体,所述InheritableThreadLocal线程本地实体中定义的属性用于存储数据结构和数据域标签,在进程接收到请求时进行以下操作:
操作一:从请求中获取数据域标签,并保存在InheritableThreadLocal线程本地实体的数据域标签属性中;
操作二:从一级缓存中获取数据结构,并保存在InheritableThreadLocal线程本地实体的数据域结构属性中。
为了更好地实现本发明,进一步地,在将数据结构存储至一级缓存中前,通过唯一键判断当前缓存中是否存在数据结构,若存在则删除,若不存在则跳过。
为了更好地实现本发明,进一步地,所述步骤3具体包括以下步骤:
所述步骤3包括以下步骤:
步骤31:定义DataDomainInterceptor类作为拦截器,拦截数据的更改操作;
步骤32:定义DomainAspect类作为AOP切面,拦截从控制层接收的界面,获取令牌信息并存储至一级缓存中;
步骤33:定义FeignInterceptor类作为请求拦截器,当A服务远程调用B服务时,在发出请求之前,将A服务中的令牌信息存储至请求拦截器中;
步骤34:从服务A获取连接信息,将连接信息作为唯一键获取数据域结构,判断结构化查询语句中的数据结构是否在数据域结构中,若在则继续执行步骤35,否则结束;
步骤35:根据令牌信息获取数据控制对象的控制值,并将控制值添加至结构化查询语句中,生成数据域控制后的语句;
步骤36:拦截数据域控制后的语句,发送至执行的业务层,并向B服务发送调用请求;
步骤37:FeignInterceptor类拦截调用请求,获取A服务存储在InheritableThreadLocal实体中的数据域标签的请求,将包含数据域标签的令牌发送给B服务,并将令牌信息存储至B服务的一级缓存中。
为了更好地实现本发明,进一步地,所述步骤31的具体操作为:首先定义一个DataDomainInterceptor类作为拦截器,其次基于Interceptor接口,标记@Intercepts注解作为拦截器类,然后在@Intercepts注解中继续声明@Signature注解,最后设定需要拦截的范围,拦截所有更改操作请求。
为了更好地实现本发明,进一步地,所述步骤32的具体操作为:首先定义DomainAspect类作为AOP切面,标记@Aspect注解,将DomainAspect类作为切面类,其次,声明切点在切面类中定义一个方法,并标记@Pointcut注解,在@Pointcut注解中设定execution表达式,通过execution表达式来设定需要监控的业务范围,监控所有控制层接收到的请求,然后使用前置通知在控制层接口方法执行之前获取令牌信息,并记录在一级缓存中。
为了更好地实现本发明,进一步地,所述连接信息为数据库地址。
基于上述提出的多服务细颗粒度数据域控制方法,为了更好地实现本发明,进一步地,提出一种多服务细颗粒度数据域控制系统,包括配置单元、存储处理单元、调用单元;
所述配置单元,用于配置与数据控制对象对应的数据域标签;
所述存储处理单元,用于将数据结构和数据域标签存储至一级缓存中;
所述调用单元,用于拦截数据结构和数据域标签,在进行多服务调用时生成包含数据域标签的令牌调用其他服务。
基于上述提出的多服务细颗粒度数据域控制方法,为了更好地实现本发明,进一步地,提出一种电子设备,包括存储器和处理器;所述存储器存储有计算机程序;
所述处理器调用所述存储器中的所述指令时,实现上述方法的步骤。
基于上述提出的多服务细颗粒度数据域控制方法,为了更好地实现本发明,进一步地,提出一种计算机可读存储介质,所述可读存储介质被上述处理器执行时,实现上述方法的步骤。
本发明具有以下有益效果:
(1)本发明通过配置与数据控制对象对应的数据域标签,并数据结构和数据域标签存储至一级缓存中省略了繁琐的数据结构配置,实现一次配置多次使用;
(2)本发明通过设置拦截器实现对数据域的精确到单条数据单个对象的最小颗粒度控制。
附图说明
图1为本申请实施例提供的多服务细颗粒度数据域控制方法的流程示意框图。
图2是根据一示例性实施例示出的一种电子设备1900的结构框图。
具体实施方式
为了更清楚地说明本发明实施例的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,应当理解,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,因此不应被看作是对保护范围的限定。基于本发明中的实施例,本领域普通技术工作人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“设置”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;也可以是直接相连,也可以是通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1:
本实施例提出一种多服务细颗粒度数据域控制方法,包括以下步骤:
步骤1:定义数据控制对象,配置与数据控制对象对应的数据域标签;
步骤2:获取数据结构,并将数据结构和数据域标签存储至一级缓存中;
步骤3:定义DataDomainInterceptor类作为拦截器,拦截数据结构和数据域标签,在进行多服务调用时生成包含数据域标签的令牌调用其他服务。
工作原理:本实施例通过配置与数据控制对象对应的数据域标签,并将数据结构和数据域标签存储至一级缓存中省略了繁琐的数据结构配置,实现一次配置多次使用;并通过定义DataDomainInterceptor类作为拦截器,拦截数据结构和数据域标签,在进行多服务调用时生成包含数据域标签的令牌调用其他服务,实现了对数据域的精确到单条数据单个对象的最小颗粒度控制。
实施例2:
本实施例在上述实施例1的基础上,对步骤1-步骤3的具体操作进行说明。
所述步骤1具体包括以下步骤:
步骤11:定义访问对象;所述访问对象包括人员、角色;
步骤12:定义数据控制对象,确定受访问对象对应的数据结构;
步骤13:定义控制值,所述控制值用于指示所述访问对象能否访问数据控制对象的具体值,将访问对象、数据控制对象、控制值构成一个数据域标签;当进行数据变更时解析所述数据域标签,并将所述数据域标签补充到数据保存时的结构中,当进行数据访问时,解析所述数据域标签确定数据权限。
进一步地,所述步骤2具体包括以下步骤:
步骤21:定义ApplicationRunner接口,通过SqlSession类获取数据结构,将连接信息作为唯一键,并将唯一键和数据结构存储至一级缓存中;
步骤22:定义DomainParam线程本地类;所述DomainParam线程本地类包含InheritableThreadLocal可继承的线程本地实体,所述InheritableThreadLocal线程本地实体中定义的属性用于存储数据结构和数据域标签,在进程接收到请求时进行以下操作:
操作一:从请求中获取数据域标签,并保存在InheritableThreadLocal线程本地实体的数据域标签属性中;
操作二:从一级缓存中获取数据结构,并保存在InheritableThreadLocal线程本地实体的数据域结构属性中。
进一步地,在将数据结构存储至一级缓存中前,通过唯一键判断当前缓存中是否存在数据结构,若存在则删除,若不存在则跳过。
进一步地,所述步骤3具体包括以下步骤:
所述步骤3包括以下步骤:
步骤31:定义DataDomainInterceptor类作为拦截器,拦截数据的更改操作;
步骤32:定义DomainAspect类作为AOP切面,拦截从控制层接收的界面,获取令牌信息并存储至一级缓存中;
步骤33:定义FeignInterceptor类作为请求拦截器,当A服务远程调用B服务时,在发出请求之前,将A服务中的令牌信息存储至请求拦截器中;
步骤34:从服务A获取连接信息,将连接信息作为唯一键获取数据域结构,判断结构化查询语句中的数据结构是否在数据域结构中,若在则继续执行步骤35,否则结束;
步骤35:根据令牌信息获取数据控制对象的控制值,并将控制值添加至结构化查询语句中,生成数据域控制后的语句;
步骤36:拦截数据域控制后的语句,发送至执行的业务层,并向B服务发送调用请求;
步骤37:FeignInterceptor类拦截调用请求,获取A服务存储在InheritableThreadLocal实体中的数据域标签的请求,将包含数据域标签的令牌发送给B服务,并将令牌信息存储至B服务的一级缓存中。
进一步地,所述步骤31的具体操作为:首先定义一个DataDomainInterceptor类作为拦截器,其次基于Interceptor接口,标记@Intercepts注解作为拦截器类,然后在@Intercepts注解中继续声明@Signature注解,最后设定需要拦截的范围,拦截所有更改操作请求。
进一步地,所述步骤32的具体操作为:首先定义DomainAspect类作为AOP切面,标记@Aspect注解,将DomainAspect类作为切面类,其次,声明切点在切面类中定义一个方法,并标记@Pointcut注解,在@Pointcut注解中设定execution表达式,通过execution表达式来设定需要监控的业务范围,监控所有控制层接收到的请求,然后使用前置通知在控制层接口方法执行之前获取令牌信息,并记录在一级缓存中。
本实施例的其他部分与上述实施例1相同,故不再赘述。
实施例3:
本实施例在上述实施例1-2任一项的基础上,如图1所示,以一个具体的实施例进行详细说明。
本实施例的目的在于提供一种多服务细颗粒度的数据域方法与实现,以此方法对数据权限可以做最小粒度的访问控制,同时通过服务间包含控制信息的令牌传递实现一次配置,全链生效。
为实现以上目的,本实施例提供以下实现步骤:
步骤1、为控制对象配置可以精确到最小粒度数据域标签;
步骤1.1、定义访问对象,访问对象可以是人员或角色。
步骤1.2、定义数据控制对象,数据控制对象用于确定受访问对象所管控的数据结构,表现在业务中为表中的一列或多列,访问对象与数据控制对象的关系为1对多。
步骤1.3、定义控制值,用于最终确定访问对象能访问或不能访问的数据控制对象的具体值,数据控制对象与控制值关系为1对多,当控制对象为数据结构的唯一标识结构(可以为一列或多列)时,数据控制对象与控制值定义为1对1关系即可实现最小粒度。
步骤1.4、访问对象、数据控制对象、控制值,三者构成一个数据域标签。在变更数据时解析该数据域标签对补充到数据保存时的结构中;访问数据时解析该数据域标签确定数据权限。
步骤2、通过一级缓存记录数据域结构和数据域标签。在服务或应用启动时自动注册数据域结构,从而省略了数据结构配置步骤;在服务端接收请求时缓存数据域标签。
唯一键:一个或多个字段组成的结构,在数据表中永远不能重复。
步骤2.1、定义了一个ApplicationRunner接口在服务或进程启动阶段会执行,通过SqlSession类获取数据结构(通常是表结构);定义连接信息为唯一键,将唯一键和表结构存储至一级缓存中(可选Redis,file等)
步骤2.2、在存储前通过唯一键查找当前缓存中是否已保存数据结构,若已保存则删除,未保存则跳过。
步骤2.3、定义一个线程本地类DomainParam,在DomainParam类中包含一个可继承的线程本地实体InheritableThreadLocal,InheritableThreadLocal实体中定义属性存储数据域结构和数据域标签,在进程接收到请求时做两步操作:
1、从请求中获取数据域标签,保存在InheritableThreadLocal实体的数据域标签属性中;
2、从一级缓存中获取数据域结构,保存在InheritableThreadLocal实体的数据域结构属性中;
步骤3、已有数据域结构和数据域标签后通过拦截器来进行数据域控制,并对数据的增改查统一添加控制信息。同时多服务调用时生成包含数据域标签的令牌传递给其他服务。如图1所示为流程图及实现步骤:
定义一个拦截器DataDomainInterceptor类,数据的增、改、查操作会被此拦截器拦截,其拦截签名如下@Intercepts({ @Signature(type = StatementHandler.class,method = "prepare", args = {java.sql.Connection.class, Integer.class})});此签名定义所有的数据操作都会进行拦截。
步骤3.1、定义一个AOP切面DomainAspect类,其切点如下@Pointcut("execution(* ..*.*..controller..*.*(..)))对每一个通过控制层接收的方法界面都会拦截,并获取令牌并存储在一级缓存中;
步骤3.2、定义一个请求拦截器FeignInterceptor类,在A服务远程调用B服务时,拦截器在请求发出之前生效,将A服务中的令牌信息存储到请求中。
控制层:主要工作是负责传递令牌参数、前端传过来的参数,并把这些参数传递给业务层封装好的数据操作,同时把持久层传递过来的数据进行序列化后传递给前端页面。
业务层:主要工作是负责组装一下持久层的数据操作,把需要的数据封装然后传递给持久层,并提供最终控制层需要的数据。
持久层:主要工作是负责给数据库做增删改查操作,并把这些数据库操作提供给业务层做处理。
步骤3.3、通过服务A获取连接信息,使用连接信息作为唯一键获取数据域结构--DomainStructure;
步骤3.4、判断结构化查询语句(SQL)中涉及的数据结构(通常为数据表)是否在DomainStructure中,若在则继续执行步骤3.5,否则结束;
步骤3.5、通过令牌获取控制对象的控制值,将控制值添加到结构化查询语句(SQL),形成完整的数据域控制后的语句。
步骤3.6、拦截上抛给执行的业务层从而获取到最终的结果。
步骤3.7、业务层获取到数据域控制后的结果再发送请求调用服务B。
步骤3.8、FeignInterceptor类拦截A服务的请求,获取存储在InheritableThreadLocal实体中的数据域标签,将数据域标签包含在令牌中发送给B服务。
步骤3.9、B服务收到请求后执行2.2-2.4令牌信息存储于B服务的一级缓存。
同理在有多个服务条用时也会依次执行3.1-3.9,实现令牌的传递。
令牌中所包含的控制信息也实现多服务的传递,从而控制粒度也多服务传递,数据控制可作为插件在本行业中实现共享使用。本实施例的数据域控制方法已生成一个行业通用的jar包供其他需要的使用方调用,在构建项目时将本文的jar包的标签引用至构建文件中即可生效。本实施例应用一级缓存自动记录数据存储结构,省略了繁琐的数据结构配置。通过拦截器实现对数据域的精确到单条数据单个对象的最小颗粒度控制。提供数据域控制插件作为工具即插即用,省略了部署服务的繁琐任务及资源消耗。包裹访问信息到令牌中,通过服务间调用(即A服务调用B服务)实现数据域的多服务控制,一次配置,全链生效。
本实施例的其他部分与上述实施例1-2任一项相同,故不再赘述。
实施例4:
本实施例在上述实施例1-3任一项的基础上,提出一种多服务细颗粒度数据域控制系统,包括配置单元、存储处理单元、调用单元;
所述配置单元,用于配置与数据控制对象对应的数据域标签;
所述存储处理单元,用于将数据结构和数据域标签存储至一级缓存中;
所述调用单元,用于拦截数据结构和数据域标签,在进行多服务调用时生成包含数据域标签的令牌调用其他服务。
本公开实施例还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述方法实施例提供的方法的步骤。
图2是根据一示例性实施例示出的一种电子设备1900的结构框图。例如,电子设备1900可以被提供为一服务器。参照图2,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的文档摘要生成方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法实施例提供的方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的文档摘要生成方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的文档摘要生成方法的代码部分。
本实施例的其他部分与上述实施例1-3任一项相同,故不再赘述。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
本实施例的其他部分与上述实施例1-3任一项相同,故不再赘述。
以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。
Claims (11)
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服务中的令牌信息存储至请求拦截器中;
步骤34:从服务A获取连接信息,将连接信息作为唯一键获取数据域结构,判断结构化查询语句中的数据结构是否在数据域结构中,若在则继续执行步骤35,否则结束;
步骤35:根据令牌信息获取数据控制对象的控制值,并将控制值添加至结构化查询语句中,生成数据域控制后的语句;
步骤36:拦截数据域控制后的语句,发送至执行的业务层,并向B服务发送调用请求;
步骤37:FeignInterceptor类拦截调用请求,获取A服务存储在InheritableThreadLocal实体中的数据域标签的请求,将包含数据域标签的令牌发送给B服务,并将令牌信息存储至B服务的一级缓存中。
6.如权利要求5所述的一种多服务细颗粒度数据域控制方法,其特征在于,所述步骤31的具体操作为:首先定义一个DataDomainInterceptor类作为拦截器,其次基于Interceptor接口,标记@Intercepts注解作为拦截器类,然后在@Intercepts注解中继续声明@Signature注解,最后设定需要拦截的范围,拦截所有更改操作请求。
7.如权利要求5所述的一种多服务细颗粒度数据域控制方法,其特征在于,所述步骤32的具体操作为:首先定义DomainAspect类作为AOP切面,标记@Aspect注解,将DomainAspect类作为切面类,其次,声明切点在切面类中定义一个方法,并标记@Pointcut注解,在@Pointcut注解中设定execution表达式,通过execution表达式来设定需要监控的业务范围,监控所有控制层接收到的请求,然后使用前置通知在控制层接口方法执行之前获取令牌信息,并记录在一级缓存中。
8.如权利要求3所述的一种多服务细颗粒度数据域控制方法,其特征在于,所述连接信息为数据库地址。
9.一种多服务细颗粒度数据域控制系统,其特征在于,包括配置单元、存储处理单元、调用单元;
所述配置单元,用于配置与数据控制对象对应的数据域标签;
所述存储处理单元,用于将数据结构和数据域标签存储至一级缓存中;
所述调用单元,用于拦截数据结构和数据域标签,在进行多服务调用时生成包含数据域标签的令牌调用其他服务。
10.一种电子设备,其特征在于,包括存储器和处理器;所述存储器存储有计算机程序;
所述处理器调用所述存储器中的所述指令时,实现如权利要求1-8任一项所述方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述可读存储介质被权利要求10所述处理器执行时,实现如权利要求1-8任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211662059.8A CN116226906A (zh) | 2022-12-23 | 2022-12-23 | 一种多服务细颗粒度数据域控制方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211662059.8A CN116226906A (zh) | 2022-12-23 | 2022-12-23 | 一种多服务细颗粒度数据域控制方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226906A true CN116226906A (zh) | 2023-06-06 |
Family
ID=86588187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211662059.8A Pending CN116226906A (zh) | 2022-12-23 | 2022-12-23 | 一种多服务细颗粒度数据域控制方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226906A (zh) |
-
2022
- 2022-12-23 CN CN202211662059.8A patent/CN116226906A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9633106B1 (en) | Log data analysis | |
JP2020030866A (ja) | 機密情報処理方法、装置、及び、サーバ、ならびに、セキュリティ決定システム | |
CN110348239A (zh) | 脱敏规则配置方法以及数据脱敏方法、系统、计算机设备 | |
EP3403187A1 (en) | Single click delta analysis | |
CN105793814A (zh) | 云数据丢失防止集成 | |
CN110245004A (zh) | 命令执行方法、装置、设备及计算机可读存储介质 | |
CN103559118A (zh) | 一种基于aop与注解信息系统的安全审计方法 | |
JP2017514218A (ja) | サードパーティアプリケーションの実行 | |
US20060190480A1 (en) | Generation of names related to organization actions | |
CN114144798A (zh) | 安全事故调查事件捕获 | |
CN103414585A (zh) | 建立业务系统的安全基线的方法和装置 | |
US10891357B2 (en) | Managing the display of hidden proprietary software code to authorized licensed users | |
US20120254416A1 (en) | Mainframe Event Correlation | |
WO2022095518A1 (zh) | 接口自动化测试方法、装置、计算机设备及存储介质 | |
CN109271807A (zh) | 数据库的数据安全处理方法及系统 | |
CN113761552A (zh) | 一种访问控制方法、装置、系统、服务器和存储介质 | |
CN114070619A (zh) | 数据库异常访问的监控方法、监控系统、设备和存储介质 | |
CN113836237A (zh) | 对数据库的数据操作进行审计的方法及装置 | |
CN111147496B (zh) | 数据处理方法及装置 | |
CN116226906A (zh) | 一种多服务细颗粒度数据域控制方法、系统、设备及介质 | |
CN105519069B (zh) | 数据处理系统、中心装置以及程序 | |
CN115630392A (zh) | 一种基于无服务器架构的隐私数据管理方法和计算网关 | |
CA3153014A1 (en) | Method and system for generating and executing a software appliance | |
CN114189383A (zh) | 封禁方法、装置、电子设备、介质和计算机程序产品 | |
CN112417533A (zh) | 防截屏方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |