大家好,我是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项目的权限管理,使用方式非常简单:
把这个类JCasbinAuthzInterceptor 拷贝到你的项目里,保证其加载(在Config类的configInterceptor里配置);
把jCasbin的模型文件authz_model.conf和策略文件authz_policy.csv 拷贝到你的项目里,可以自己根据需要进行修改;
重写JCasbinAuthzInterceptor类的getUser方法,让jCasbin知道当前登录的用户是谁,具体实现跟你的身份认证机制有关系,比如用户名、用户ID,都可以。
jCasbin可以实现对登录用户,访问的path,以及HTTP method三个元素进行权限检查。开发者配置好后,只需要修改jCasbin的模型和策略就可以实现权限管理的动态修改,非常灵活。其中,策略还支持存储在数据库中(需要实现Adapter类)。更多功能请参考jCasbin项目主页。
欢迎大家多提宝贵意见,如有Bug、Feature request或者PR,也欢迎到GitHub页面进行提交,谢谢!