spring security角色检查的疑问
在 eladmin文档 权限控制一章
有个地方没太懂,如下图所示:
图中hasAnyRole
写的是参数是多个角色。
但下面使用的是这样的:
hasAnyRole('admin','menu:edit')
这里的admin
角色可以理解,但是menu:edit
是什么意思,这个不像是角色的意思吧?
回答:
其实从security" title="spring security">spring security 的角度来看,所有的不过都是权限 而已,角色时另类权限。而角色是可以用常量字符"ROLE_"来标识的。理论上来说,hasAnyRole('menu:edit')
是存在问题的,它表示authority
-->ROLE_menu:edit
这显然是不标准的用法,确实很容易让人迷惑。menu:edit
应该是表示编辑菜单的权限,应该使用hasAuthority
。或者简单的@Secured
来判断。至于role
判断,则推荐抽象等级更高的RolesAllowed
。
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
回答:
先看hasAnyRole 这个是有任意一个权限就能访问
admin是角色
menu:edit是有编辑权限就能访问这个方法。
以上是 spring security角色检查的疑问 的全部内容, 来源链接: utcz.com/p/944480.html