问答详情
源自:4-4 Shiro过滤器

角色为空为啥返回true那? hheellpp~

角色为空为啥返回true那https://img2.mukewang.com/5c62d40000010b8309130495.jpg

提问者:慕勒5006560 2019-02-12 22:11

个回答

  • 1473441338
    2019-02-26 18:20:50

    if 前面的语句是为了获取当前主体执行时所需的角色  把他放在字符集 roles中

    if判断的意思是 如果roles为空或长度为零 意味着你在controller中所写的方法没有进行@RequireRoles(“admin”)这样的操作 ,也就是说你写的这个方法无需角色权限就可以访问 当然要返回true 直接访问

    相反若果你写的方法进行了角色的注解 那么就要比对当前登录用户是否有该角色(也就是foreach当中的判断)

    if(subject.hasRole(roles))//若果发现当前用户有该权限 则返回true 进行访问

    反之亦然