主题
RBAC组件
RBAC组件是实现了基于资源、角色、组织及用户等元素的权限管理组件。
依赖如下:
xml
<!-- rbac controller接口 -->
<dependency>
<groupId>cn.zjtele.pubinfo.sys.rbac</groupId>
<artifactId>rbac-api</artifactId>
</dependency>
<dependency>
<groupId>cn.zjtele.pubinfo.sys.rbac</groupId>
<artifactId>rbac-core</artifactId>
</dependency>
ER图
相关配置
yaml
pubinfo:
rbac:
password:
# 默认密码
default-password: xxxxxxx
# 密码过期时间
expire-days: 180
# 初次登陆是否强制修改密码
force-change-init-pwd: true
# 密码不能与之前n次密码重复
num-of-recent-no-repeat: 2
# 后端密码校验器
strength-checker-list: contentRegex,length,keyBoard,oldPassword,userName
资源管理
资源管理,主要用于进行应用、菜单、按钮等前端资源的管理维护。
注意
- 资源编码:涉及资源权限控制,及数据权限控制,需全局唯一
- 权限标识:涉及后端接口鉴权,值为接口请求url,多个以逗号分隔。url不包含contextPath,例如
http://127.0.0.1/pubinfo-sys/rbac/user/add
,填入/rbac/user/add
角色管理
角色管理,主要用于进行角色的管理维护。
注意
- 角色编码:在使用spring-security进行认证授权验证时,角色编码可以进行功能权限的校验。
- 角色关联资源:创建编辑角色时,当前登录人能给角色关联的资源范围,不能超过他自己拥有的。
角色组管理
角色组管理,用于角色组的管理维护。角色组是角色的集合,可以将角色关联至角色组。
注意
- 所属角色:在角色管理中配置的角色。
- 在角色管理中删除某个角色,角色组中的该角色也会删除。
组织管理
组织管理,主要用于进行组织机构的管理维护。
注意
- 组织类型:该字段关联了字典:orgType,具体的类型可自定义。
- 组织祖籍idPath:pub_org表中的idPath字段,是当前组织到根节点的id列表通过逗号拼接而成,方便进行子组织查询,组织路径查询等操作。
- 信息扩展:pub_org表中的extendInfo字段,是当前组织到根节点的id列表通过逗号拼接而成,方便进行子组织查询,组织路径查询等操作。
组织授权
组织授权,对组织关联的角色进行管理维护。组织下的用户会拥有该组织的角色。
注意
- 是否可继承:下级组织是否继承(拥有)该组织的角色。
用户管理
用户管理,主要用于进行用户的管理维护及授权。
管理
授权
切换组织
注意
- 超级管理员:pub_user表中userType=1的用户,是超级管理员。超级管理员只能通过数据初始化进行维护,在管理页面看不到超级管理员用户。
- 用户多组织:用户可以关联多个组织,其中只能有一个主组织,登录时默认以主组织身份登录,登录后可以切换组织。
- 用户角色授权:基于多组织,用户的角色是在组织下授予的,切换组织后,页面的菜单资源会根据角色的变化而变化。