业务应用接入

在该项目github主页\demo文件夹下存在一个示例应用,它引入并且使用MatrixAuth完成的权限判断。如有任何问题,可以参照该项目进行设置。

1 功能概述

业务应用可以基于MatrixAuthClient完成一些用户、权限管理工作。

MatrixAuthClient的工作包括:

  • 用户管理:MatrixAuth只负责管理权限而不负责管理用户,但是MatrixAuth需要知道用户的增删信息以便于维护他的权限。当业务应用增删用户时,可以通过调用MatrixAuthClient中相关方法的方式来通知MatrixAuth。
  • “用户-角色”关系管理:有一些业务强相关的角色的赋予、剥夺必须由业务应用展开,但是需要通知MatrixAuth以便于进行权限管理。业务应用通过MatrixAuthClient中的相关方法将为用户赋予、剥夺角色的操作通知给MatrixAuth。注意,通过客户端,只能为用户赋予或剥夺BusinessAppControlledInterfaceAndBusinessAppControlled这两类角色,而不能指派InterfaceControlled角色。InterfaceControlled角色须通过MatrixAuthClient提供的接口才能编辑。

为了实现明确的职责划分,MatrixAuth将业务应用中的角色划分为三类:

  • InterfaceControlled:这类角色的“用户-角色”关系只能由MatrixAuthServer的接口进行修改。
  • BusinessAppControlled:这类角色的“用户-角色”关系只能由MatrixAuthServerClient进行修改。
  • InterfaceAndBusinessAppControlled:这类角色的“用户-角色”关系MatrixAuthServer的接口、MatrixAuthServerClient均可进行修改。

2 实现步骤

使用如下代码在需要进行用户管理或“用户-角色”关系管理的地方引入下面的Bean。

@Autowired
private MatrixAuthClient matrixAuthClient;

2.1 管理用户

MatrixAuthClient提供下面三个方法管理用户。

  • addUser(String userKey, String userName):向MatrixAuth中增加一个用户,用户的键为userKey,用户名为userName
  • deleteUser(String userKey):从MatrixAuth中删除键为userKey的用户。
  • updateUser(String userKey, String userName):修改MatrixAuth中键为userKey的用户。

2.2 管理“用户-角色”关系

MatrixAuthClient提供下面三个方法管理“用户-角色”关系。

  • addUserXRole(String userKey, String roleName):为键为userKey的用户增加角色roleName
  • deleteUserXRole(String userKey, String roleName):删除键为userKey的用户的角色roleName

MatrixAuth——高性能轻量级分布式权限系统