apache-ranger - Apache Ranger REST API addUsersAndGroups 返回 404 未找到
问题描述
我们已经安装了 Apache Ranger,并且 Web UI 工作正常,大多数 REST API 方法在 PublicAPIsv2 和 RoleREST 上都工作正常,根据https://ranger.apache.org/apidocs/ui/index.html。我可以通过调用返回 id 409
来获取“test_role” id。
我可以通过调用来获取 test_role 内容
我可以通过编辑我得到的响应 并通过它提交来更改 test_role 用户列表GET /public/v2/api/roles/name/test_role
GET /public/v2/api/roles/409
GET /public/v2/api/roles/409
PUT /public/v2/api/roles/409
身体是:
{
"id": 409,
"isEnabled": true,
"createdBy": "admin",
"updatedBy": "admin",
"createTime": 1598241102841,
"updateTime": 1601975068428,
"name": "test_role",
"options": {},
"users": [
{
"name": "test_user1”,
"isAdmin": true
},
{
"name": “test_user2”,
"isAdmin": true
},
{
"name": “test_user3”,
"isAdmin": false
}
],
"groups": [
{
"name": "test_group”,
"isAdmin": false
}
],
"roles": []
}
但是调用PUT /public/v2/api/roles/409/addUsersAndGroups
返回“404 not found”。我尝试使用与上述相同的主体作为参数,并且还使用:
{
"users": [
{
"name": “test_user4”,
"isAdmin": true
}
]
}
有谁知道作为参数发送到的正确正文是什么:
/public/v2/api/roles/409/addUsersAndGroups
?
此外,进行错误调用,例如GET /public/v2/api/roles/409/addUsersAndGroups
返回“405 method not allowed”。所以我相信它表明终点确实存在。我不确定为什么PUT public/v2/api/roles/409/addUsersAndGroups
使用(可能)不正确的正文调用会返回“404 not found”,而不是与错误参数相关的错误消息。
解决方案
发生这种情况是因为 Apache Ranger API 文档有误,删除端点的后缀 /addUsersAndGroups 即可。
例子:https://ranger_url/service/roles/roles/409
其中 409 是角色 ID,正如您在示例中使用的那样。
需要的身体:
{
"name": "test_role",
"users": [
{
"name": "test_user1",
"isAdmin": true
}
]
}
推荐阅读
- angular - Angular 7 动态可注入模板
- linux - 在进行额外循环时
- mysql - 如何在 MySQL 中更改 SHOW GRANTS 标题?
- c# - Newtonsoft.Json filtering output
- javascript - 无输出 fast-csv writeToPath
- google-maps - 在谷歌地图中包含基于 Json 文件的颤振标记
- r - 如何找到 R 函数中给定参数的可接受选项列表?
- android - 如何限制 Android 原生应用广告中的重定向?
- django - 如何创建此查询集?
- google-chrome - chrome 扩展程序可以从“chrome-search://ntpicon”加载图像吗