昨天工作生产环境出现的一个问题分享分享。
问题:给用户添加多个角色导致该用户应用(权限)反而变少
情况一:测试用户添加单角色1,并且给改角色添加应用权限(正常)
情况二:给测试用户再加一个角色2,并且给新角色2添加应用权限(正常)(角色1(10个应用权限)+角色2(20个应用权限))
情况三:角色1+角色3(50个应用权限)(页面应用比单角色应用还少)
出问题是在客户那边生产环境出现的,为此我在我们这测试环境想要复测,但是一直复测不出来(客户生产环境那用的k8s,看日志也不方便,就想着在测试复现找问题。)
但是的情况就是给一个用户绑定多个角色就可能会出现这问题,但是我给一个用户绑定多个角色又不会出现问题,后面不断的绑定角色试,发现就只有两个角色绑定在一起就会出现问题,然后我又尝试将这两个角色混着绑定,并且我担心可能是给角色绑定的应用出的问题,所以我就一个一个的试一个一个的勾选,(因为这个应用权限就是菜单,只要选了该应用的一个菜单就有权限,既可以控制应用权限也可以控制菜单权限还有功能权限)。
最后猜到可能是字段超长了(逗号拼接的),但是回到数据库发现类型用的text 也不可能超长,因为已经找到了具体的位置所以第二天我就在测试服务器里加测试数据来复现,看日志果然,我单角色18个应用,再加一个角色反而变少了只有12个了,并且日志中打印的id,最后一个id被截断了。找到问题后我就回到本地调试找到了罪魁祸首 GROUP_CONCAT(mp.MENU_IDS),网上搜了搜mysql默认最大长度1024导致sql那就被截断了。
因为这应用的权限是从另外一个服务获取的数据,我从另外一个服务通过代码调用http获取数据然后再通过我这边的服务过滤。我还担心是我的问题,折腾了一天,最后是别的人问题就安心了。
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
🚩JavaD121、某个接口有10个抽象方法和100个具体的实现类,考虑到接口后期可能需要增加方法,设计接口时,通过中间的一个抽象类(适配器抽象类)默认实现或空实现接口(都是使用普通方法),然后具体的100个子类覆写自己想要的方法。后期接口增加方法时,给适配器抽象类增加一个普通方法,第101个具体子类再覆写适配器抽象类的第101个方法。2、抽象方法可以声明为static,错,因为static方法
2
🚩JavaD131、抽象类、继承、多态、接口、内部类,单独每一章节能懂,综合后就似懂非懂2、每一章节重复看视频,还是懂,做综合题,这一遍刷题是对的,再接着刷题是错的。3、死板的知识适合我,灵活的不适合。4、五大山头压着都懵圈了,看来还要多花时间在这五大山头
3
Day 13✅ 今天做了:Vue表单搜索, 搜索栏布局⏰ 明天计划:继续学前端
2
今天学了Python基础之:①数据类型和变量:五大数据类型以及变量常量②字符串与编码:字符编码以及Python中的字符串、编解码、格式化
1
day41今天自己修改了一下简历,用作投AI应用开发岗位,还不是很完善,先用老鱼简历做一个简单的。后年用AI优化了一下。今天主要是对AI超级智能体的总结还有简历优化,后续继续学新项目,我觉得写项目是学知识的最佳途径,相比于死板板的理论,实践起来,记忆更佳。但是基础的还是要看,不然跟着写项目都写不明白。算法一题,Java基础。用友有一个笔试邀约,9月第一个笔试。其他的投完简历的都还没回信,科大讯飞的
1
