一种智慧建筑工程信息系统权限配置的方法技术方案

技术编号:39326525 阅读:12 留言:0更新日期:2023-11-12 16:04
本发明专利技术公开了一种智慧建筑工程信息系统权限配置的方法,包括以下步骤:给请求参数类中权限相关的字段添加注解;定义权限控制枚举类,在权限控制枚举类中定义系统中需要权限控制的清单;增加参数解析器,将增加的参数解析器加入到参数解析器列表中,作为第一个参数解析器;前端请求发起时,请求经过参数解析器进行解析,判断参数类中的属性是否存在注解;通过反射读取参数类中需要根据权限调整的字段,并进行缓存;根据字段注解中的参数和操作人员的权限范围,获取权限字段对应的值,并根据权限字段值对字段进行重置;将转换后的请求参数传递给下一个参数解析器进行解析;本方法具有代码侵入性低、便于维护的特点。便于维护的特点。便于维护的特点。

【技术实现步骤摘要】
一种智慧建筑工程信息系统权限配置的方法


[0001]本专利技术涉及智慧工程业务系统领域,特别涉及一种智慧建筑工程信息系统权限配置的方法。

技术介绍

[0002]建筑工程业务系统中不同的人员会有不同的权限,而对于全国性的工程业务,每个区域的人员只能看到各自区域的数据,对于不同的业务类型,比如智慧电力,智慧暖通,智慧照明等不同业务类型又有不同的人员对业务进行操作和审核的权限。随着业务的复杂度的增加,业务架构的调整,业务类型的增加和调整,权限的处理变得维度更多,权限处理更加复杂。对于系统中的人员赋予权限之后,系统中各个页面可以查看的数据权限需要进行处理。例如列表页面数据的查询,需要先查找对应的部门信息,再查找对应人员所属的业务类型等信息,作为参数传递到SQL中,但是如果每个页面都要调用这段代码,即使抽取成为独立的函数,依然要在各个页面中进行调用,就会有很多冗余的代码;常用的解决方案包含给请求加一个过滤器,但是基本上是要求参数统一,不然还要做各种参数的区分处理,还有一种方案是给SQL加一个外层的包装,对权限参数进行单独处理,但是对于复杂SQL,比如:有表关联,多张表有同一个参数,需要使用别名区分的场景,但没有很好的支持办法。因此,急需提供一种智慧建筑工程信息系统权限配置的方法以解决上述问题。

技术实现思路

[0003]为实现上述目的,专利技术人提供了一种智慧建筑工程信息系统权限配置的方法,包括以下步骤:S1,自定义字段注解,给请求参数类中权限相关的字段添加注解,注解接受参数,注解参数表示该字段对应的权限字段,权限字段表示权限控制枚举类中定义的权限控制清单对应的键值;S2,定义权限控制枚举类,在权限控制枚举类中定义系统中需要权限控制的清单;S3,增加参数解析器,在系统的服务器启动时,将增加的参数解析器加入到参数解析器列表中,作为第一个参数解析器;S4,前端请求发起时,请求经过参数解析器进行解析,读取参数类,判断参数类中的属性是否存在注解,若存在注解,则执行参数解析处理;S5,通过反射读取参数类中需要根据权限调整的字段,并进行缓存;S6,根据字段注解中的参数和操作人员的权限范围,获取对应的权限字段对应的值,并根据权限字段值对字段进行重置;S7,将转换后的请求参数传递给下一个参数解析器进行解析。
[0004]作为本专利技术的一种优选方式,步骤S4还包括步骤:接收请求参数,在Spring框架中,请求参数为NativeWebRequest,将NativeWebRequest转成自定义的Request类对请求参数进行处理。
[0005]作为本专利技术的一种优选方式,对请求参数进行处理包括步骤:M1,获取需要处理的请求参数,将通过反射获取的需要处理的请求参数放入Map中,记为Map1,Map1的键值为请求参数名,数据值为通过反射获取类中参数的描述对象;M2,根据操作人员和页面菜单获取操作人员在当前页面中的权限数据,放入Map中,记为Map2;M3,循环Map1,对请求参数进行处理;M4,将自定义Request类转换成NativeWebRequest,将NativeWebRequest传递给下一个参数解析器进行参数处理;M5,处理完成的数据作为SQL的搜索条件,用于控制数据权限。
[0006]作为本专利技术的一种优选方式,所述步骤M3还包括步骤:M301,获取对应请求参数通过反射获取类中参数的描述对象,通过反射获取类中参数的描述对象获取请求参数的注解信息,读取参数注解的参数信息,将注解参数的值作为键值获取Map2中的权限对应的数据信息;M302,根据请求参数名获取请求参数的值,若请求值为空,则将请求参数值设置为权限对应的数据信息,若请求值不在Map2中对应的权限数据内,则直接报权限错误,若请求值在Map2中对应的权限数据内,则不进行请求参数的重置。
[0007]区别于现有技术,上述技术方案所达到的有益效果有:(1)本方法从统一的入口进行数据权限的控制,防止权限控制分散在代码的各个部分,利于代码的修改和统一的控制;(2)本方法对业务屏蔽了权限细节,可以让开发关注业务逻辑本身,代码侵入性低;(3)本方法中的系统权限扩展性更强,方便根据业务需要动态增加或者减少权限控制维度,支持多维度的权限控制。
附图说明
[0008]图1为具体实施方式所述权限参数处理流程图。
具体实施方式
[0009]为详细说明技术方案的
技术实现思路
、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
[0010]如图1所示,为了最细粒度的控制权限,比如:部分请求需要控制,部分请求不需要,还比如:每个请求控制权限的参数名可能不一致,各种场景下都要支持等;本实施例提供了一种智慧建筑工程信息系统权限配置的方法,包括以下步骤:S1,设计一个注解,命名为AuthConfig,自定义注解设计一个参数,命名为config,config的值对应的是权限控制枚举类权限枚举键值key。由于自定义注解需要在后面的解析环节通过反射获取,所以设置注解的策略方式为RUNTIME,注解会保留在class文件中,同时在运行期间也会被识别,可以使用反射机制获取注解信息。给请求参数类中权限相关的字段添加注解,注解接受一个参数,注解参数表示该字段对应的权限字段,权限字段即权限控制枚举类中定义的权限控制清单对应的键值key;
S2,定义权限控制枚举类,在权限控制枚举类中定义系统中需要权限控制的清单,比如:控制部门权限、业务类型权限等;S3,增加一个参数解析器,参数解析器主要对请求类中的权限相关参数进行处理,增加一个配置类,配置类通过继承WebMvcConfigurer类,WebMvcConfigurer是Springboot的一个配置类,来实现添加解析器的方法;在系统的服务器启动时,将增加的参数解析器加入到参数解析器列表中,作为第一个参数解析器;S4,前端请求发起时,请求经过参数解析器进行解析,读取参数类,判断参数类中的属性是否存在注解,若存在注解,则执行参数解析处理;S5,通过反射读取参数类中需要根据权限调整的字段,并进行缓存;S6,根据字段注解中的参数和操作人员的权限范围,获取对应的权限字段对应的值,并根据权限字段值对字段进行重置;S7,将转换后的请求参数传递给下一个参数解析器进行解析。
[0011]对于上述实施例的步骤S2,举例为:请求的参数类中包含部门列表、业务类型等字段,这些字段增加权限注解,注解为@AuthConfig(config = AuthConfigEnum.DEPT_CODE),请求参数字段对应的权限与部门Code相关联。
[0012]对于上述实施例的步骤S4还包括步骤:接收请求参数,在Spring框架中,请求参数为NativeWebRequest,即本地web请求,NativeWebRequest是Spring框架提供的一个接口,用于在Web请求的上下文中提供对本地请求和响应的访问。由于NativeWebRequest是不可变的,为了将请求参数替换成相应的权限对应的数据,需要自定义的Request请求类对请求参数进行处理本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种智慧建筑工程信息系统权限配置的方法,其特征在于,包括以下步骤:S1,自定义字段注解,给请求参数类中权限相关的字段添加注解,注解接受参数,注解参数表示该字段对应的权限字段,权限字段表示权限控制枚举类中定义的权限控制清单对应的键值;S2,定义权限控制枚举类,在权限控制枚举类中定义系统中需要权限控制的清单;S3,增加参数解析器,在系统的服务器启动时,将增加的参数解析器加入到参数解析器列表中,作为第一个参数解析器;S4,前端请求发起时,请求经过参数解析器进行解析,读取参数类,判断参数类中的属性是否存在注解,若存在注解,则执行参数解析处理;S5,通过反射读取参数类中需要根据权限调整的字段,并进行缓存;S6,根据字段注解中的参数和操作人员的权限范围,获取对应的权限字段对应的值,并根据权限字段值对字段进行重置;S7,将转换后的请求参数传递给下一个参数解析器进行解析。2.根据权利要求1所述的智慧建筑工程信息系统权限配置的方法,其特征在于,步骤S4还包括步骤:接收请求参数,在Spring框架中,请求参数为NativeWebRequest,将NativeWebRequest转成自定义的Request类对请求参数进行处理。3.根据权利要求2所述的智慧建筑工程信息系统...

【专利技术属性】
技术研发人员:汪浩李斐张杰业晓波
申请(专利权)人:江苏橙智云信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1