一、该问题的重现步骤是什么?
Bladex-boot版本如下
2. 这是我要执行数据权限的mapper
3. 下面是我的目录结构
4. 这是我通过web全自动配置的方式
然后登录其他用户执行这个方法的时候,并没有走数据权限
于是我打了断点
下面是配置文件
二、你期待的结果是什么?实际看到的又是什么?
我希望能够按照我设定的数据权限,实现只能看到自己创建的数据,而现在数据权限并没有生效,可以看到所有人的
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
正在使用的是商业授权过的BladeX-Boot-master版本,版本是4.0.1.RELEASE,在windows10操作系统上
四、请提供详细的错误堆栈信息,这很重要。
没有报错,就是数据权限没有生效
五、若有更多详细信息,请在下面提供。
下载对应版本的bladex-tool,选择develop模式,根目录执行mvn clean install。
然后就可以看到源码模式,在源码模式下进行断点调试会更清晰,这样可以很轻松的找到原因。
发布版本地址,找到对应版本下载附件:https://center.javablade.com/blade/BladeX/releases
我的是bladex-boot商业授权的版本,我的账号是704297000,这个是什么意思,是我的项目中引入bladex-tool吗,如何调试,能不能说明白点,我按照你们的文档检查了很多次,配置的没问题的,但是现在通过web方式配置就是不行,而通过注解方式却是可以的
你打断点的截图不是源码模式,所以打断点很费劲不能一目了然问题在哪里。
你现在下载4.0.1版本的BladeX-Tool工程(这个是jar包核心依赖的源码),在BladeX-Tool工程(勾选develop模式)根目录执行mvn clean install后,就可以把源码模式的jar包安装到本地。你打开bladex-boot工程刷新依赖,再打开jar包就可以看到源码了。
打开源码模式后再打断点,然后把这段代码每一行的参数打印出来看看是什么,然后再帮忙判断。
//注解为空并且数据权限方法名未匹配到,则放行 String mapperId = ms.getId(); String className = mapperId.substring(0, mapperId.lastIndexOf(StringPool.DOT)); String mapperName = ClassUtil.getShortName(className); String methodName = mapperId.substring(mapperId.lastIndexOf(StringPool.DOT) + 1); boolean mapperSkip = dataScopeProperties.getMapperKey().stream().noneMatch(methodName::contains) || dataScopeProperties.getMapperExclude().stream().anyMatch(mapperName::contains); if (dataAuth == null && mapperSkip) { return; }
我下载下来了
然后这里也是重新生成的
然后重新打开文件,还是源码这种方式,是我哪一步操作的不对吗,大佬,能不能远程解决一下,项目着急上线,现在就卡到数据权限这里了,有偿,我的weixin:17640415854
加下我们企业 https://bladex.cn/#/contract
扫一扫访问 Blade技术社区 移动端