权限控制
2026/3/17大约 5 分钟使用手册使用与管理界面操作操作说明
概述
本章节“权限管理”,主要包含前端菜单以及动态权限配置
[一]菜单管理
[1]菜单列表
在菜单管理页面,可以查看系统菜单列表,并进行相应的管理操作。

[2]新建菜单
在菜单管理页面中,新建菜单。菜单相关属性如下:

对于 Vue 类型的前端,菜单相关属性与 Vue 的路由配置相对应。以下面静态路由配置为例,进行说明:
{
path: '/security',
component: () => import('@/views/layouts/Index.vue'),
meta: { title: '用户安全管理', sort: 2, icon: 'mdi-lock-pattern' },
redirect: '/security/user',
children: [
{
path: '/security/user',
name: ComponentNameEnum.SYS_USER,
meta: { title: '用户管理', icon: 'mdi-badge-account-horizontal', isHideAllChild: true },
component: () => import('@/views/pages/security/user/Index.vue'),
children: [
{
path: '/security/user/content',
name: 'SysUserContent',
meta: { title: '用户详情', icon: 'mdi-clipboard-account', isDetailContent: true },
component: () => import('@/views/pages/security/user/Content.vue'),
},
{
path: '/security/user/authorize',
name: 'SysUserAuthorize',
meta: { title: '用户角色', icon: 'mdi-badge-account-alert', isDetailContent: true },
component: () => import('@/views/pages/security/user/Authorize.vue'),
},
],
},
]
}属性说明:
- 应用类型:主要用于区分当前菜单是用于哪一种终端
- 菜单场景:主要用于区分当前菜单是用于应用主页面菜单还是个人设置页面菜单。自 4.0.X 版本之后,开始区分菜单场景,个人设置页面采用独立菜单,支持配置。
- Vue Router 请求路径:对应前面 Vue Router 配置中的
path的值 - Vue Component 名称:对应前面 Vue Router 配置中
name的值。如果是最上级的路径,例如:上面的/security配置,则留空不配置任何信息 - 显示标题:对应前面 Vue Router 配置中 meta 里的
title的值。该值主要用于菜单以及 Tab 页上的标题显示。 - 显示ICON:对应前面 Vue Router 配置中 meta 里的
icon的值。该值主要用于菜单以及 Tab 页上的 ICON 显示。当前使用Material Design Icons,可以输入部分字符进行模糊查询。Material Design Icons(mdi) - Vue Component 页面相对路径:对应前面 Vue Router 配置中
component方法对应import函数中的值,实际对应前端工程中页面代码。 - Vue Router 重定向地址:对应前面 Vue Router 配置中的
redirect的值。没有redirect则留空。 - 该页面不需要KeepAlive缓存:即,Vue KeepAlive 机制。如果不设置 KeepAlive 缓存,每次打开页面都会重新绘制。如果设置 KeepAlive 缓存,就会保留页面第一次绘制状态。
- 该页面不需要权限验证:页面不需要登录系统也可以访问。
- 该页面包含子页面:对应前面 Vue Router 配置中,只要配置中包含
children,就需要选中该选项。 - 在菜单中隐藏该节点下所有子节点:如果选中 该页面包含子页面 会显示该属性。用于控制子页面是否显示在菜单树中。
- 该页面是三级路由页面:该选项主要用于
第三级路由页面,对应前面 Vue Router 配置中的/security/user/content和/security/user/authorize配置
注意
常规 Vue 仅支持两级路由。第三级路由需要自己单独处理。
Dante Cloud UI 实现了 第三级路由页面,该类型页面为动态组件的加载。这类页面通常为数据列表中,数据条目的设置或编辑操作,操作完成就会被关闭,不会像数据表格页面一样支持长时间显示。因此,该类型页面通常也不会显示在菜单树中。
[3]为菜单分配角色
新建菜单色之后,可以为该菜单指定具体的角色。

[二]元数据管理
[1]元数据列表
在元数据管理页面,可以查看系统菜单列表。元数据没有新增和删除操作,主要原因手动管理会非常笨拙系统提供了自动管理机制,只需要在该功能上进行修改操作即可。

[2]元数据分配权限
这是系统的核心管理操作,也是控制 REST API 权限的核心管理功能。
提示
自 Dante Cloud 4.0.3.0 开始,元数据管理已经支持对 gRPC 方法的管理。

详细的权限设计,参见【权限体系设计】。
[3]动态修改接口权限
Dante Cloud 最大的特色之一,就是不需要在接口上手动写死 @PreAuthorize 注解,通过后台管理功能就可以动态变更接口的权限。
选择一条元数据信息,点击修改即可以动态修改 REST API 或 gRPC 的权限。

具体的权限类型说明:
- permitAll:允许所有请求通过,无论用户是否认证、是否匿名、有无特定角色。不做任何安全检查
- anonymous:仅允许 匿名用户 (即未登录的用户)访问。如果当前用户已通过身份认证(包括 remember-me 认证),则拒绝访问(返回 403)。
- rememberMe:仅允许通过 Remember-Me 记住我功能 认证的用户访问。如果用户是通过普通登录(用户名/密码)认证的,或者未认证,则拒绝访问。
- denyAll:拒绝所有请求,无论用户身份如何。即强制返回 403 禁止访问。
- authenticated:要求用户已经通过身份认证(即已登录),包括通过普通登录和 remember-me 登录的用户。匿名用户将被拒绝。
- fullyAuthenticated:要求用户是 完全认证 的,即不是通过 remember-me 认证的。用户必须通过正常的登录流程(如提供用户名/密码)完成认证。如果当前用户仅通过 remember-me 认证,则会被拒绝。
提示
Spring Security 中对请求的安全控制,包括:认证和鉴权两部分:
- 认证:即用户登录。例如:使用用户名和密码登录,并正常返回了 Token。
- 鉴权:验证用户是否有调用某个接口的权限。通常 Token 中会包含用户所拥有的权限,鉴权就是验证 Token 中是否包含某个权限。
例如:authenticated 权限类型,表示用户必需已经通过认证(即:登录),但是不需要对其 Token 中是否包含某个权限进行鉴权。
