点击上方“xy的技术圈”,选择“设为星标”
认真写文章,用心做分享。
微信公众号:xy的技术圈
个人网站:yasinshaw.com
正文
在上篇文章《系统权限设计 - 基本概念和思路》中,介绍了我们在做权限设计的时候需要注意的一些点。其中有两点比较关键,这里再次提一下:
粒度:粒度很难把握,推荐以一个基本的“业务操作”为粒度;
区分Access与Validation:其中,Access与数据无关,可以在网关那一层就挡住;Validation与数据有关,可以在下游Service写代码来做。
下面将从后端到前端来介绍整个权限设计的推荐实践细节。
后端实现细节
分别从Access和Validation的实现角度来介绍。
Access怎么做?
Access就是一个个写死的权限。比如在Spring Security中,它是一个个字符串。你可以把它写死在Config文件里,也可以存在数据库里。
一般来讲,存在数据库里更灵活,如果配上一个管理界面,也比较容易管理。这里简单介绍一下存在数据库里如何做。以Spring Security为例,可以使用自定义的Bean拦截所有请求。在Bean里面可以取到request的URL等信息,然后去查数据库或session或解析JWT T