Azkaban提供REST API,可供Ajax或Curl进行HTTP请求,但是所有的API调用首先需要进行身份认证。
Azkaban在servlet的isAjaxCall(HttpServletRequest request)
方法假定请求标头
Content-Type: application/x-www-form-urlencoded
X-Requested-With: XMLHttpRequest
认证
字段 | 说明 |
---|---|
Method | POST |
RequestURL | /?action=login |
Parameter Location | Request Query String |
API会帮助认证用户,并在响应中返回session.id
,默认的超时时间是24h。
可以直接将session.id
作为参数
curl -k --get --data "session.id=bca1d75d-6bae-4163-a5b0-378a7d7b5a91&ajax=fetchflowgraph&project=azkaban-test-project&flow=test" https://localhost:8443/manager
或者是设置azkaban.browser.session.id
的cookie
curl -k --get -b "azkaban.browser.session.id=bca1d75d-6bae-4163-a5b0-378a7d7b5a91" --data "ajax=fetchflowgraph&project=azkaban-test-project&flow=test" https://localhost:8443/manager
参数 | 说明 |
---|---|
action=login | 登录操作的固定参数 |
username | Azkaban用户名 |
password | 相对应的密码 |
响应
参数 | 说明 |
---|---|
error | 返回登录失败的错误信息 |
session.id | 登录成功,返回session id |
简单的curl请求
curl -k -X POST --data "action=login&username=azkaban&password=azkaban" https://localhost:8443
{
"status" : "success",
"session.id" : "c001aba5-a90f-4daf-8f11-62330d034c0a"
}