第(4)节,我们已经对代码生器生成的界面“我的岗位管理”进行了优化,可以看到,与原eladmin的“岗位管理”基本一致,现在我们来看看eladmin是怎么定义权限控制的,并且如何应用到自己的界面当中。
1. 权限注解理解
首先用IDEA打开后端“我的岗位管理”的gen模块中的rest层(也就是Controller层),如下图:

可以看到标红的注解@PreAuthorize("@el.check(‘myJob:list’)"),这是什么意思呢?在IDEA环境下,按住ctrl键点击@el.check,可以看到源代码如下:

这里看到注解对应函数check()中定义了一个elPermissions,它是一个List类型,由源代码的定义很容易可以推断出,它就是获取当前登录用户具有的权限,这个权限放在List集合中。再观察return 的内容,elPermissions.contains(“admin”) || Arrays.stream(permissions).anyMatch(elPermissions::contains),这是一个"或"的表达式,只要满足其一就可以通过,通过英文可以推断:
- elPermissions.contains(“admin”) 表明只要是超级管理员admin就判断为true,admin具有一切权限;
- Arrays.stream(permissions).anyMatch(elPermissions::contains)表明只要登录用户具有”myJob:list“这
eladmin权限控制解析

本文深入解析eladmin的权限控制机制,包括权限注解的理解、用户权限携带方式、界面权限添加及后端验证过程,适合对SpringSecurity权限管理感兴趣的学习者。
最低0.47元/天 解锁文章
4705





