shiro配置中使用securityManager.setCacheManager(cacheManager());只会在第一次请求权限操作时将当前用户的权限加载到cache中,并且有效时间为session有效的时间,下一次请求时不会再去DB中加载权限列表到缓存中,并cache失效为null后,又更新加载一次当前请求用户的权限到缓存中。最重要的是在cache中的这份权限会被所有登陆的用户共用,这就很恶心,所有的登陆用户共用同一份权限列表,现还没有时间找寻解决方法,暂时是不使用cacheManager,这样每次操作请求,都会加载DB当前用户的权限列表。

redis中只有一份权限列表

服务架构:springboot1.5.15

在Shiro配置中使用securityManager.setCacheManager(cacheManager())时,权限被加载到缓存中并在session有效期内共用,导致所有登录用户共享同一份权限列表。探讨了此问题的成因及临时解决方案。
568

被折叠的 条评论
为什么被折叠?



