NutzCN Logo
精华 比Shiro更简单的Nutz权限管理:与jCasbin权限管理框架进行整合
发布于 2419天前 作者 qq_f7253e2a 6900 次浏览 复制 上一个帖子 下一个帖子
标签:

大家好,我是jCasbin开源项目的作者。jCasbin是一个用 Java 语言打造的轻量级开源访问控制框架( https://github.com/casbin/jcasbin),目前在 GitHub 开源。

jCasbin 采用了元模型的设计思想,支持多种经典的访问控制方案,如基于角色的访问控制 RBAC、基于属性的访问控制 ABAC 等。总之比较强大,比Apache Shiro更简单、更灵活。详细的介绍在这里:https://jiasule.v2ex.com/t/446988

现在jCasbin通过插件 jcasbin-nutz-plugin 的方式可以支持对Nutz项目的权限管理,使用方式非常简单:

  1. 把这个类JCasbinAuthzFilter拷贝到你的项目里,保证其加载(在MainModule类里配置@Filters);
  2. 把jCasbin的模型文件authz_model.conf和策略文件authz_policy.csv 拷贝到你的项目里,可以自己根据需要进行修改;
  3. 重写JCasbinAuthzInterceptor类的getUser方法,让jCasbin知道当前登录的用户是谁,具体实现跟你的身份认证机制有关系,比如用户名、用户ID,都可以。

jCasbin可以实现对登录用户,访问的path,以及HTTP method三个元素进行权限检查。开发者配置好后,只需要修改jCasbin的模型和策略就可以实现权限管理的动态修改,非常灵活。其中,策略还支持存储在数据库中(需要实现Adapter类)。更多功能请参考jCasbin项目主页。

为方便演示,例子里用的身份认证(即用户登录)是最简单的HTTP Basic Authentication,大家可以替换成自己的身份认证,比如OAuth, JWT, Shiro等。

欢迎大家多提宝贵意见,如有Bug、Feature request或者PR,也欢迎到GitHub页面进行提交,谢谢!

11 回复

先置顶一段时间吧 ^_^

这个怎么读呀

有人开始使用jCasbin了吗

有人开始使用jCasbin了吗

@yuffo 读:J 卡斯宾,Go语言的叫Casbin(卡斯宾),为了区分,Java版本在前面加了一个J

@crskyp 已经有公司在用了哈,有问题可以加QQ群:546057381

添加回复
请先登陆
回到顶部