加强JFinal的权限管理:与jCasbin权限管理框架进行整合

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

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

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

  1. 把这个类JCasbinAuthzInterceptor 拷贝到你的项目里,保证其加载(在Config类的configInterceptor里配置);

  2. 把jCasbin的模型文件authz_model.conf和策略文件authz_policy.csv 拷贝到你的项目里,可以自己根据需要进行修改;

  3. 重写JCasbinAuthzInterceptor类的getUser方法,让jCasbin知道当前登录的用户是谁,具体实现跟你的身份认证机制有关系,比如用户名、用户ID,都可以。

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

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

评论区

JFinal

2018-05-03 22:12

感谢分享

絮随风

2018-05-04 09:09

欢迎欢迎

hsluoyz

2018-05-04 12:55

@JFinal 谢谢支持!!

hsluoyz

2018-05-04 12:55

烈火123

2018-05-05 14:02

欢迎

lgy

2018-05-06 09:59

赞一个

rirai

2018-05-07 11:37

@hsluoyz 有没有Casbin的中文教程或者说明呢?谢谢

hsluoyz

2018-05-08 21:13

@rirai 可以加入jCasbin技术群:546057381