点击空白处退出提示
作品详情
2、平台菜单按钮管理模块
新增平台所需的菜单列表,在根据对应的菜单,在上面绑定对应的按钮。对菜单按钮进行管理
3、服务管理模块
主要针对需要做权限控制的api url 资源进行控制。可以先将对应的api 通过swagger 直接导入进来。然后在将api 和对应的按钮建立关系,进行绑定。
4、角色权限
角色权限模块,是基于RBAC搭建的权限模型。在这个模型中,我们把权限赋予角色,再把角色赋予用户。用户和角色,角色和权限都是多对多的关系。用户拥有的权限等于他所有的角色持有权限之和。
这里我们将角色与对应的菜单、按钮(按钮绑定了api)进行绑定。这样角色就拥有了对应的菜单、按钮的权限
5、用户管理模块
通过用户管理,将角色授权给对应的用户,最终用户就拥有了角色下的菜单、按钮、api 资源的权限
kylin 权限管理系统作为管理全公司所有系统权限的平台。 在设计主要分为两个服务。 权限核心服务和openapi 开放服务。
权限核心服务统一处理后台页面的业务逻辑。 开放服务则对外像业务方提供开放接口
面临的问题,主要有三两块:
1、用户的任何权限变更都需要通知业务方,因为权限变更的口子非常多。 不仅可以通过后台操作,还对外提供了需要开放的api 接口。如果采用硬编码的方式很难对所有入口进行收口。
这里我们最终采用的方案是通过监听binlog 日志进行操作。借助公司的中间件服务,数据同步平台,监听binlog 当对应表的binlog 发生变化,数据同步平台会通过mq 给我们发送
消息,然后我们在将消息进行整合落库。 最后通过xxljob 定时执行。 读取权限变更消息记录表,在发送给对应的业务方
2、作为公司统一的权限管理平台,用户、权限信息接口的qps 很大。为此我们设计了二级缓存。应用程序启动时,默认通过caffeine 初始化本地缓存数据。在读取时,默认读取
本地缓存,本地缓存无数据时在读取redis ,redis 没有才读取数据库。 数据发送变更时通过mq 自产自销更新本地缓存数据
3、作为统一权限管理平台除了要保证高性能外,还需要保证高可用。为此在服务部署上采用多活部署。阿里云、腾讯云、各部署一套服务。中间件则统一采用腾讯云。
在通过网关做流量分发控制。平时主要流量集中在腾讯云,阿里云放10% 的流量。 一旦出现腾讯云不可用的情况,5分钟内将流量全部切至阿里云。保证服务高可用
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论