在该项目github主页的\demo文件夹下存在一个示例应用,它引入并且使用MatrixAuth完成的权限判断。如有任何问题,可以参照该项目进行设置。
1 功能概述
业务应用可以基于MatrixAuthClient完成一些用户、权限管理工作。
MatrixAuthClient的工作包括:
- 用户管理:MatrixAuth只负责管理权限而不负责管理用户,但是MatrixAuth需要知道用户的增删信息以便于维护他的权限。当业务应用增删用户时,可以通过调用MatrixAuthClient中相关方法的方式来通知MatrixAuth。
- “用户-角色”关系管理:有一些业务强相关的角色的赋予、剥夺必须由业务应用展开,但是需要通知MatrixAuth以便于进行权限管理。业务应用通过MatrixAuthClient中的相关方法将为用户赋予、剥夺角色的操作通知给MatrixAuth。注意,通过客户端,只能为用户赋予或剥夺
BusinessAppControlled和InterfaceAndBusinessAppControlled这两类角色,而不能指派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。