FP1995XY
2018-09-28 09:45
我建立的用户拥有两个角色 admin 和 1 但是我在shiro.xml配置的时候 roles["admin","admin1"]提示成功roles["admin"}也成功,这是 与 的关系么,我怎么看是 或 啊
roles参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,当有多个参数时,每个参数通过才算通过,相当于hasAllRoles()
方法。shiro的角色过滤是and的关系。
shiro默认对于角色授权的拦截是and关系,只有当该用户拥有配置的一个多个角色是才可通过
roles的filter是通过subject.hasRoles(roles)判断是否满足所有权限,可以理解为and关系。
对于roles["admin","admin1"],由于用户拥有两个角色,所以subject.hasRoles()方法都可以通过,所以显示成功;
同理,roles["admin"]也可以通过subject.hasRoles()方法。
也许是你缓存了吧,roles 就是或的关系
Shiro安全框架入门
48049 学习 · 347 问题
相似问题