当前位置: 首页 > 网络应用技术

SpringCloud微型服务实施数据权限控制

时间:2023-03-08 00:13:39 网络应用技术

  上一章讨论了如何验证用户许可。它是对微服务下统一资源访问权限的控制,就像墙壁在集群下保护各种业务应用服务的墙一样。本章是关于另一个级别的权限控制,这意味着控制可访问的数据资源的数量。

  例如:

  一群销售人员跟进了国家销售命令。他们由城市分开,一名推销员跟进了3个城市的订单。为了保护公司的业务数据,每个人都不能掌握每个人。因此,每个推销员只能看到他负责城市的订单数据。因此,从系统中,每个销售员都具有访问销售订单的功能,然后每个推销员负责的城市就是筛选订单数据。

  有很多方法可以实施此功能。如果在系统中的许多地方需要类似的需求,那么我们可以将其制成一个共同的函数。在这里,我引入了一个相对简单的解决方案以供参考。

  对于形式的形式,它悬挂在每个控制器上,这需要数据权限。因为它与特定程序逻辑有关,因此具有一定的入侵,并且需要数据库。

  有关注释的完整代码,请参见源代码以获取详细信息

  1)创建注释。

  :获取与用户数据权限存储有关的唯一用户的识别

  ,:预先获得的数据权限的范围

  2)AOP实施注释这是演示代码的过程。主要功能是通过令牌获取预先授权的数据范围,然后与请求范围进行交互,最后写回原始参数。

  在此过程中,更多用于计算表达结果。有关详细信息,请参阅parsaspel文件

  3)计算权限范围的交点。为了促进设置,有两个关键字范围

  4)Spring.Factories自动导入配置如果注释函数是单独的项目,则使用文件时可能找不到问题。

  将注释添加到需要用于使用数据权限的控制器方法中

  :指示输入参数orderdto的城市值。这是必须添加表达式的表达**#**

  在实际的开发过程中,您需要将** orderdto.getCities()**带入后续逻辑,然后将其在DAO层中组装到SQL中以实现数据过滤功能

  该接口是具有数据权限的存储接口。

  该接口是一个不必要的接口,可以使用数据库或redis存储(推荐)。通常,它存储在登录的中间

  接口是数据权限查询接口,可以根据存储方法查询。建议使用redis

  在分布式结构中,也可以将其实现到权限模块。

  到目前为止,要实现数据许可。为了在微服务器体系结构中重新使用功能,将注释的创建和AutherySupplier的实现提取到公共模块中,因此特定的模块非常简单。注释和配置要使用的查询方法。

  由于长度,本文中的代码不是完整的逻辑。如果您有兴趣,请提供源代码gitee.com/hypier/barry-cloud/tree/master/master/cloud-auth- logic-