后台系统权限设计的思考
前言
很久没写博客了,因为项目加急,我碰到了很多问题,解决了很多问题;因为随便一个概念性的问题改动,我都特么快炸毛了。。
问题
当前的角色设计存在漏洞,无法实现安全的需求,根据大佬的指点我进行的改动。
具体的问题:
设计的数据库架构无法通过角色对接口以及数据进行细致的控制,a角色是非管理员也可以去访问管理员专用的接口。
改善思路
如何控制权限?
权限控制链关系
用户-角色-权限
权限又可拆分为接口权限也就是操作权限与具体的数据权限
我先前是没有权限表的,只有一个与role关联的后台菜单表所以我无法控制到接口。
所以为了实现这玩意,添加权限表.与角色进行关联,实现权限自定义注解,在代码层面对接口权限进行控制,数据库只需要录入权限字符串.
至此就可以实现了对接口的权限控制,完美!
题外话:因为后台的springgateway与spring security进行了整合,全局过滤器使用了webfulx进行了实现,所以关于这个注解拦截过滤器我其实挺想通过gateway的全局拦截进行实现的,搞了几天发现不可行,原因还是未知,我无法通过gateway拦截器获得handermethod,可能是gateway的版本问题,但是升级到2020的springcloud实在是代价太大,现无法承受此代价。。。
延申思考
既然我都控制了操作权限,我该如何控制数据呢?
目前其实系统不需要实现此功能,没有应用场景。
和大佬意料,我擦,这么多sao操作 我傻了,如何进行控制?
数据新增时就在数据库产生其数据标志,当你需要去将此数据的权限进行分发或者赋予时,与标志进行关联即可,芜湖。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!