五、前端页面菜单、按钮控制
...大约 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使用方式同理,不再赘述>