五、前端页面菜单、按钮控制

GitEgg...大约 2 分钟二次开发二次开发开发使用权限菜单按钮控制

  在使用传统 SpringMVC 框架时,系统安全框架基本都是使用的 Shiro,相比 SpringSecurity 而言,Shiro 更加灵活、简单且功能全面,门槛较低。Shiro 除提供后台注解鉴权外,还提供了前端鉴权标签,在前后端分离项目中,这种 JSTL 标签就无法使用了。随着微服务的流行和 SpringSecurity 各方面功能的优化,尤其是 SpringSecurity 提供的非常方便的 Oauth2 鉴权功能,现在越来越多的框架开始使用 SpringSecurity 而不是 Shiro 了。本项目框架自定义 VUE 指令实现类似于 Shiro 鉴权标签的功能,下面介绍如何在前后端分离项目中使用。
   没有用过 Shiro 权限标签的,可以先了解一下 Shiro 提供的权限标签,功能非常全面,但有些并不是经常使用,我们这里只挑选以下四个功能标签实现,如果需要其他鉴权标签可以自己实现:

标签说明
v-hasAnyPerms有任一权限时显示
v-hasAnyRoles有任一角色时显示
v-lacksPerms有任一权限时隐藏
v-lacksRoles有任一角色时隐藏

页面示例:

<!-- 有任一权限时显示 -->
<a @click="handleUpdate(record)" v-hasAnyPerms="['system:role:update']">编辑</a>

<!-- 有任一权限时显示 -->
<a-dropdown v-hasAnyPerms="['system:role:delete', 'system:role:batch:delete', 'system:role:status']">
......
</a-dropdown>

<!-- 有任一角色时显示 -->
<a @click="handleUpdate(record)" v-hasAnyRoles="['SYSADMIN']">编辑</a>

<!-- 有任一权限时显示 -->
<a-dropdown v-hasAnyPerms="['SYSADMIN', 'BUSINESS_ADMIN']">
......
</a-dropdown>

<!--v-lacksPerms 和 v-lacksRoles使用方式同理,不再赘述>

注意:在页面进行权限判断时,使用的是权限资源的 resourceKey 或者角色的 rokeKey 进行判断。