Skip to content

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的用户,是超级管理员。超级管理员只能通过数据初始化进行维护,在管理页面看不到超级管理员用户。
  • 用户多组织:用户可以关联多个组织,其中只能有一个主组织,登录时默认以主组织身份登录,登录后可以切换组织。
  • 用户角色授权:基于多组织,用户的角色是在组织下授予的,切换组织后,页面的菜单资源会根据角色的变化而变化。