牛骨文教育服务平台(让学习变的简单)
博文笔记

shiro角色( roles)自定义Filter----同一个URL配置多个角色的或关系

创建时间:2017-03-08 投稿人: 浏览次数:239



情况介绍


roles:

正常情况下URL路径的拦截设置如下:

/admins/user/**=roles[admin]


参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,当有多个参数时,例如/admins/user/**=roles["admin,guest"]

但是这个设置方法是需要每个参数满足才算通过,相当于hasAllRoles()方法。

也就是我们的角色必须同时拥有admin和guest权限才可以。


我们可以看到其实这个roles的filter是通过subject.hasAllRoles(roles)判断是否满足所有权限,但是我们真实项目中,很多时候用户只要满足其中一个角色即可认为是授权认证成功。


apache shiro 的角色过滤是 and的关系,需要重新写成or的关系。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。