qq_32550077
风摇曳着叶子
采纳率0%
2019-04-26 12:26 阅读 1.1k

shiro用户权限始终是登录的第一个用户的权限?

小白一枚,在使用springboot+shiro的时候,发现一个问题,使用注解来判断
用户是否具有该权限时,

@RequiresRoles(value = {"admin"},logical = Logical.AND)

退出当前用户后

 Subject subject = SecurityUtils.getSubject();
 subject.logout();

shiro始终使用的是第一个登录用户的权限角色信息,
也就是说如果我第一次登录admin用户后,访问带有权限验证的注解时,shiro会去调用方法如下

AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals)

我在这里去构建了该用户的权限,我了解shiro会缓存用户的认证和授权,但是用户退出后,shiro依然缓存上一个用户的权限。

因为没太明白shiro对授权这一块是否有缓存,或者说缓存机制是怎么样的,所以这个问题一直没解决。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • qq_38167579 农夫丶果园 2019-04-26 16:10

    你的意思是指 你用具有admin权限的用户登录并访问该接口 , 可以正常访问 , 但是登出了之后 , 使用不具有admin权限的用户登录进来依旧可以访问该接口 ?

    点赞 评论 复制链接分享

相关推荐