English | 中文
当前暂未发布到maven,使用请下载jar包
- 下载model_request.conf放在
classpath:casbin/model_request.conf
- 在控制器方法上加上
@RequiresCasbin
注解,该请求便会去验证该请求地址权限。
这里的三元素分别是: Shiro的principals
值、请求的path地址ServletPath
、请求的方法类型method
@RequiresCasbin @GetMapping("menu/root") public List<Menu> getRoot() { return menuService.getRoot(); }
- 为请求接口分配权限
CasbinSubject subject = (CasbinSubject) SecurityUtils.getSubject(); Enforcer enforcer = subject.getEnforcer(); // 获取到enforcer String path = "/menu/root"; String method = "GET"; enforcer.addPermissionForUser(role, path, method); // 当然根据rbac的原则,第一个参数可以是role也可以是user enforcer.addRoleForUser(user, role); // 给user赋予role
下面的值为默认值
shiro-jcasbin:
enabled: true // 开启jcasbin
model: classpath:casbin/model_request.conf // 模型路径
rule-table: casbin_rule_request // policy存储表名
watcher: true // 开启watcher,需要jetcd支持
watcher-key: /casbin/watcher_request // watcher使用的键名