TinyPermission,一个超轻量级的spring boot权限验证模块
- 具备和shiro一样的注解过滤权限的功能。
- 可实现动态权限的过滤。
- 超少代码实现且提供示例demo。
关键代码块
@TinyPermission(value = "admin")
@RequestMapping(value = "/admin")
public String admin(@RequestHeader(name = "token")String token){
return "admin...";
}
@TinyPermission(value = "admin,manage")
@RequestMapping(value = "/manage")
public String manage(@RequestHeader(name = "token")String token){
return "manage...";
}
@TinyPermission(value = "admin,manage,custom")
@RequestMapping(value = "/custom")
public String custom(@RequestHeader(name = "token")String token){
return "custom...";
}
@TinyPermission(value = "admin",dynamic = "api_permission.dynamic_permission")
@RequestMapping(value = "dynamic_permission")
public String dynamicPermission(@RequestHeader(name = "token")String token){
return "dynamic permission...";
}
效果如下
- 有权限访问
- 无权限访问
- 动态权限访问
TinyPermission及demo的源码:https://gitee.com/ayowin/tinypermissiondemo
实际上TinyPermission正是小编在做一个分布式的项目时,对于权限过滤功能提供的一个解决方案来的,即:已登录过的用户总是以载体的形式存在实体类(或存在于redis,或jwt,或mysql中…),只要在TinyPermission的配置类中总是从载体中取得用户所得到的用户权限列表,即可实现 “用户一次登录,所有服务节点皆可过滤权限” 的便利。