Atlas实现了根据admin(用户)、entity(实体对象)和typedef(类型数据)的权限验证,每个用户根据用户名(user)和用户组名(usergroup)绑定对应的角色(role),角色role中保存允许的操作(action),如下图。
以根据admin进行权限验证,分析atlas源码:
步骤1:设置权限验证策略AtlasSimpleAuthPolicy
成员对象包含userRoles和groupRoles,保存用户对应的role,roles包含角色对用的操作权限
private Map<String, AtlasAuthzRole> roles;
private Map<String, List<String>> userRoles;
private Map<String, List<String>> groupRoles;
步骤2:将操作请求封装到AtlasAdminAccessRequest中,包含操作(action)、用户名(username)、用户组名(usergroup)。
public class AtlasAdminAccessRequest extends