boot版本启动后数据权限不生效。

Blade 未结 2 1689
3061185685
3061185685 剑圣 2020-03-14 19:23

一、该问题的重现步骤是什么?

我按照文档设置了数据权限如下截图

  1.  image.pngimage.png

  2. image.png

  3. image.png

  4. image.png

2. 

3.


二、你期待的结果是什么?实际看到的又是什么?

期待就是按照文档的可以成功筛选,实际无效,控制台打印sql信息如下:

==============  Sql Start  ==============

Execute ID  :org.springblade.modules.desk.mapper.NoticeMapper.selectPage

Execute SQL :SELECT id, title, category, release_time, content, tenant_id, create_user, create_dept, create_time, update_user, update_time, status, is_deleted FROM blade_notice WHERE is_deleted = 0 LIMIT ?,?

Execute Time:2 ms

==============  Sql  End   ==============



三、你正在使用的是什么产品,什么版本?在什么操作系统上?

最新版本  mac本地


四、请提供详细的错误堆栈信息,这很重要。

无报错信息


五、若有更多详细信息,请在下面提供。



2条回答
  • 超管角色不受数据权限影响,你用其他的账号才会生效,具体逻辑看:org.springblade.core.datascope.handler.BladeDataScopeHandler

    1 讨论(1)
  • 2021-04-25 15:40

    我也遇到了,解决了。我的版本是2.7+ 最后发现是乐观锁插件导致的。

    // 新版会导致数据权限失效
    // 注册乐观锁和分页插件(新版:3.4.0)
    // @Bean
    // public MybatisPlusInterceptor mybatisPlusInterceptor(){
    //    MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
    //    interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); // 乐观锁插件
    //    // DbType:数据库类型(根据类型获取应使用的分页方言)
    //    interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); // 分页插件
    //    return interceptor;
    // }
    
       /**
        * 旧版 乐观锁插件,不会导致数据权限失效
        * @return
        */
       @Bean
       public OptimisticLockerInterceptor optimisticLockerInterceptor(){
          return new OptimisticLockerInterceptor();
       }

    把新版的 MybatisPlusInterceptor 给注释掉,使用 OptimisticLockerInterceptor 就没问题。


    1 讨论(0)
提交回复