[发明专利]基于过滤器的动态权限控制方法和系统在审
申请号: | 202111495491.8 | 申请日: | 2021-12-08 |
公开(公告)号: | CN114139190A | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 池万泱 | 申请(专利权)人: | 兴业银行股份有限公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/33 |
代理公司: | 上海段和段律师事务所 31334 | 代理人: | 施嘉薇 |
地址: | 350000 *** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 过滤器 动态 权限 控制 方法 系统 | ||
1.一种基于过滤器的动态权限控制方法,其特征在于,包括:在请求分发到具体业务接口前,通过过滤器解析包括请求的用户、当前用户拥有的角色以及所访问接口需要的角色;基于解析的请求的用户、当前用户拥有的角色以及所访问接口需要的角色,通过决策器判断当前用户是否可以访问对应接口,从而实现动态权限控制的目的。
2.根据权利要求1所述的基于过滤器的动态权限控制方法,其特征在于,包括
步骤S1:通过添加包括用户表、机构表、角色表、资源表、控制项表、用户机构关联表、用户角色关联表、机构角色关联表、控制项资源关联表以及控制项角色关联表扩展RBAC权限模型;
步骤S2:获取请求头中的token,通过加解密算法解密token;当成功解密token时,则和用户表里的信息匹配;匹配成功时,则认证成功,并获取请求的用户信息,并将用户标识存储到请求头中;否则认证失败,结束请求;
步骤S3:获取请求头中的用户标识,根据扩展的RBAC权限模型查询用户拥有的所有角色,并存储到线程变量中;
步骤S4:获取请求的目标地址,并根据扩展的RBAC权限模型,获取当前目标地址资源对应的所有角色,并存储到线程变量中;
步骤S5:判断用户拥有的角色和访问地址资源需要的角色是否满足决策条件,当满足时,则鉴权成功,并根据扩展的RBAC权限模型,查询出用户拥有的所有数据权限资源,并存储到请求头中,继续请求,否则鉴权失败,结束请求。
3.根据权利要求2所述的基于过滤器的动态权限控制方法,其特征在于,所述步骤S3采用:
步骤S3.1:查询用户角色关联表,获取当前用户直接关联的角色;
步骤S3.2:若用户继承机构权限,则通过查询用户机构关联表获取当前用户对应的机构,再通过查询机构角色表,获取机构对应的所有角色;
步骤S3.3:若用户继承机构权限,则通过查询用户机构关联表获取当前用户对应的机构的所有上级机构,再通过查询机构角色表,获取上级机构中被子孙机构继承的所有角色;
步骤S3.4:将获取的所有角色去重合并后,得到用户拥有的所有角色。
4.根据权利要求2所述的基于过滤器的动态权限控制方法,其特征在于,所述步骤S4采用:
步骤S4.1:获取请求中的目标URL值以及请求METHOD,通过资源表,获取访问的资源对象;
步骤S4.2:通过控制项资源关系表,获取当前资源所述的所有控制项;
步骤S4.3:通过控制项角色关系表,获取控制项需要的角色。
5.根据权利要求2所述的基于过滤器的动态权限控制方法,其特征在于,所述步骤S5采用:
步骤S5.1:从线程变量中获取用户拥有的所有角色及访问资源需要的所有角色;
步骤S5.2:判断用户拥有的角色中,是否存在任一角色和访问资源需要的任一角色匹配,当匹配时,则鉴权成功;否则结束请求;
步骤S5.3:根据控制项角色关联表,查询用户拥有的所有控制项;
步骤S5.4:根据控制项资源关联表,查询用户拥有的所有数据权限资源,并将资源信息存储到请求头中。
6.一种基于过滤器的动态权限控制系统,其特征在于,包括:在请求分发到具体业务接口前,通过过滤器解析包括请求的用户、当前用户拥有的角色以及所访问接口需要的角色;基于解析的请求的用户、当前用户拥有的角色以及所访问接口需要的角色,通过决策器判断当前用户是否可以访问对应接口,从而实现动态权限控制的目的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于兴业银行股份有限公司,未经兴业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111495491.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:即热式开水装置
- 下一篇:简单的基于神经网络的自动AV分析方法及系统