jcsabin FilteredAdapter 逻辑处理问题

jcasbin 默认的Enforcer 构造函数在处理FilteredAdapter的时候有些问题(造成的问题是运行正常,但是过程有问题)

原有参考代码

    public Enforcer(Model m, Adapter adapter) {
        this.adapter = adapter;
        this.watcher = null;
 
        model = m;
        model.printModel();
        fm = FunctionMap.loadFunctionMap();
 
        initialize();
 
        //  此处有问题
        if (this.adapter != null ) {
            loadPolicy();
        }
    }

现象

就是只要是传递了adapter 就会执行加载,问题就很明显了,违背了filter 的意义了

解决方法

实际上官方提供了一个filteradapter 的处理,只是没有使用

    public Enforcer(Model m, Adapter adapter) {
        this.adapter = adapter;
        this.watcher = null;
 
        model = m;
        model.printModel();
        fm = FunctionMap.loadFunctionMap();
 
        initialize();
 
        // fix: Enforcer pass FilteredAdapter will load all policy
        if (this.adapter != null && !isFiltered()) {
            loadPolicy();
        }
    }

说明

相关的pr 已经合并了,并且在1.10.2 已经发布了,对于使jcasbin filteradapter的比较推荐使用此maven 包

参考资料

https://github.com/casbin/jcasbin/pull/197
https://github.com/casbin/jcasbin/releases/tag/v1.10.2

posted on   荣锋亮  阅读(191)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-06-13 pgloader 学习(八) pg 2 pg 简单demo
2019-06-13 pgloader 学习(七) 从归档文件加载数据
2019-06-13 pgloader 学习(六) 加载csv 数据
2019-06-13 pgloader 学习(五)pgloader 参考手册
2019-06-13 pgloader 学习(四)一些简单操作例子
2019-06-13 pgloader 学习(三)快速使用
2019-06-13 pgloader 学习(二)特性矩阵&&命令行

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示