慕勒5006560
2019-02-12 22:11
角色为空为啥返回true那
if 前面的语句是为了获取当前主体执行时所需的角色 把他放在字符集 roles中
if判断的意思是 如果roles为空或长度为零 意味着你在controller中所写的方法没有进行@RequireRoles(“admin”)这样的操作 ,也就是说你写的这个方法无需角色权限就可以访问 当然要返回true 直接访问
相反若果你写的方法进行了角色的注解 那么就要比对当前登录用户是否有该角色(也就是foreach当中的判断)
if(subject.hasRole(roles))//若果发现当前用户有该权限 则返回true 进行访问
反之亦然
Shiro安全框架入门
48040 学习 · 332 问题
相似问题