spring security角色检查的疑问

eladmin文档 权限控制一章
有个地方没太懂,如下图所示:
123.png

图中hasAnyRole写的是参数是多个角色。
但下面使用的是这样的:

hasAnyRole('admin','menu:edit')

这里的admin角色可以理解,但是menu:edit是什么意思,这个不像是角色的意思吧?

阅读 2.5k
2 个回答

其实从spring security 的角度来看,所有的不过都是权限 而已,角色时另类权限。而角色是可以用常量字符"ROLE_"来标识的。理论上来说,hasAnyRole('menu:edit') 是存在问题的,它表示authority -->ROLE_menu:edit这显然是不标准的用法,确实很容易让人迷惑。menu:edit 应该是表示编辑菜单的权限,应该使用hasAuthority。或者简单的@Secured来判断。至于role判断,则推荐抽象等级更高的RolesAllowed

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

新手上路,请多包涵

先看hasAnyRole 这个是有任意一个权限就能访问
admin是角色
menu:edit是有编辑权限就能访问这个方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏