github地址: https://github.com/liuweidong-open/permission-starter/tree/master
设计思路:
- 增删改查对应1248 账号权限为 [权限资, 权限值累加, …]
- 每次请求时, 放在request header里, key为permission (base64)
- 创建starter项目 引入即可以创建此后置处理器
- bean生命周期时, 有@Permission的则aop (value & create == create 那么则有create权限)
举个例子: 用户相关api, 大致可以分为四个 分别为增删改查, 这个资源假如为authen.user, 如果给这个账号这个资源查询和添加的权限,那么就是8+1, 也就是9, 那么这个账号permission为 [{“resource”:“authen.user”, “action”:9}, …]
demo演示:
- 代码下载下来之后, 打包成jar包, 新建一个springboot项目加入这个依赖或者从私服maven引入.
- 创建controller
@RestController
public class TestPermissionController {
@RequestMapping("create")
@Permission(resource = "authen.user", action = PermissionActionEnum.CREATE)
public String create() {
return "通过权限验证";
}
@RequestMapping("delete")
@Permission(resource = "authen.user", action = PermissionActionEnum.DELETE)
public String delete() {
return "通过权限验证";
}
@RequestMapping("update")
@Permission(resource = "authen.user", action = PermissionActionEnum.UPDATE)
public String update() {
return "通过权限验证";
}
@RequestMapping("query")
@Permission(resource = "authen.user", action = PermissionActionEnum.QUERY)
public String query() {
return "通过权限验证";
}
}
- 启动该springboot
- https://tool.oschina.net/encrypt?type=3 在线base64编码
[{“resource”:“authen.user”, “action”:9}] ------------> 编码为: W3sicmVzb3VyY2UiOiJhdXRoZW4udXNlciIsICJhY3Rpb24iOjl9XQ== - 打开postman 在header里添加permission
- 先请求locahost:8080/create 和 locahost:8080/query 也就是9的action粒度权限
输出如下:
- 再进行 locahost:8080/delete 和 locahost:8080/update
输出如下:
完美api权限粒度控.