在该项目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
。