美文网首页
003.Azkaban-3.x 用户管理

003.Azkaban-3.x 用户管理

作者: CoderJed | 来源:发表于2019-08-23 13:03 被阅读0次

绝大多数应用系统都会有用户和权限管理的功能,Azkaban当然也有,用户可用于登录页面,权限则可以控制当前用户可以看到哪些project,以及对他的操作范围进行控制。

1. XmlUserManager

XmlUserManager是Azkaban中内置的默认UserManager类,在azkaban.properties文件中的设置如下:

user.manager.class=azkaban.user.XmlUserManager
user.manager.xml.file=conf/azkaban-users.xml

你可以自定义一个xml文件用于配置用户和角色,当然需要修改user.manager.xml.file的值,并且你指定的xml文件的根标签必须是:

<azkaban-users>
    ...
</azkaban-users>

这个文件不能动态修改,因为azkaban只会在web-server启动的时候加载一次这个文件。

(1) Users

添加用户,需要使用<user>这个标签:

<azkaban-users>
   <user username="myusername" password="mypassword" roles="a" groups="mygroup" / >
   <user username="myusername2" password="mypassword2" roles="a, b" groups="ga, gb" / >
   ...
 </azkaban-users>
属性 说明 是否必需
username 用户名 yes
password 密码 yes
roles 角色,多个使用","分隔 no
groups 所属组,多个使用","分隔 no
proxy 这个用户可以代理的用户,多个使用","分隔 no

(2) Groups

添加组,需要使用<group>这个标签:

<azkaban-users>
  <user username="a" ... groups="groupa" / >
  ...
  <group name="groupa" roles="myrole" / >
  ...
</azkaban-users>

以上配置中,a用户属于groupa组,因为groupa组有myrole角色,所以a用户也有myrole角色。

属性 说明 是否必需
name 组名 yes
roles 组的角色,多个使用","分隔 on

(3) Roles

添加角色,需要使用<role>这个标签:

<azkaban-users>
  <user username="a" ... groups="groupa" roles="readall" / >
  <user username="b" ... / >
  ...
  <group name="groupa" roles="admin" / >
  ...
  <role name="admin" permissions="ADMIN" / >
  <role name="readall" permissions="READ" / >
</azkaban-users>

以上配置中,admin角色有"ADMIN"权限,readall角色有"READ"权限,groupa组是admin角色,所以groupa组中成员具有"ADMIN"权限,所以a用户具有"ADMIN"权限,同时由于指定了a用户的roles="readall",所以a用户也具有"READ"权限。

属性 说明 是否必需
name 角色名 yes
permissions 权限,多个使用","分隔 yes

可以选择的权限如下:

权限名 说明
ADMIN 具有所有权限
READ 只能访问每个project,并且查看project的日志
WRITE 可以上传文件,修改任务属性,删除project
EXECUTE 可以启动任务
SCHEDULE 可以调度任务
CREATEPROJECTS 可以创建project

2. 自定义用户管理的类

实现UserManager接口:

public interface UserManager {
    public User getUser(String username, String password) throws UserManagerException;
    public boolean validateUser(String username);
    public boolean validateGroup(String group);
    public Role getRole(String roleName);
    public boolean validateProxyUser(String proxyUser, User realUser);
}

自定义的类的构造器中应该传入azkaban.utils.Props对象,打包后放入extlib目录或者plugins目录下,修改azkaban.properties文件:

user.manager.class=com.your.code.MainClass

相关文章

  • 003.Azkaban-3.x 用户管理

    绝大多数应用系统都会有用户和权限管理的功能,Azkaban当然也有,用户可用于登录页面,权限则可以控制当前用户可以...

  • Linux-用户管理和用户组管理

    用户管理和用户组管理 一、用户管理 1.添加用户 2.切换用户 3.删除用户 二、用户组 三、用户管理与用户组管理...

  • Jenkins运维管理

    凭据管理 插件管理 用户管理 创建用户 devmanager testmanagerimage.png 用户权限管...

  • 公众平台用户管理优化,支持标签功能

    公众平台用户管理优化已上线。目前已支持标签管理用户,且用户卡片实现多场景管理与查看用户信息,多维度提升用户管理效率...

  • 带你一步步用MVC架构实现简单的用户管理系统

    用户管理系统,实现简单的用户管理,有包括普通用户、管理员;功能包括添加用户,删除用户,查询用户信息,更改用户信息等...

  • 7.Metabase用户管理

    Metabase中只有系统管理员可以对用户管理,用户管理主要包括两个大的模块:用户组的管理和用户管理。其中用户组的...

  • Linux基础-用户管理

    三、用户管理 1.单一用户管理 2.用户组管理(包含权限)

  • 用户注册

    用户的注册 用户登录 用户个人信息管理 用户地址管理 用户收藏管理 我的订单 优惠券管理 其中短信微服务抽取出来 ...

  • rabbitmq 用户权角色限管理

    1. 用户管理 用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。 新增用户: 删除一个用户: 修改用户...

  • 2.快速入门

    1.用户管理 添加用户用户管理 - 查看用户 - 添加用户。 填写基本信息,完成用户添加Paste_Image.p...

网友评论

      本文标题:003.Azkaban-3.x 用户管理

      本文链接:https://www.haomeiwen.com/subject/bzwzsctx.html