0

我正在测试 mod_http_api 以替换我们实现中现有的 mod_rest 用法。

通过使用选项“admin_ip_access”,我可以不受限制地访问 IP 地址组中的某些命令。我可以成功执行一些命令(例如change_password)。

但是,在某些情况下,我们可能需要同时登录用户(自己的)和管理员(自己的和其他用户)。

但是,当我尝试使用基本身份验证登录时。这并不成功。我继续得到以下内容。如果我的假设是正确的,这可能与配置有关。

如果有人能告诉我应该如何进行正确的配置,将不胜感激。

{
  "status": "error",
  "code": 31,
  "message": "Command need to be run with admin priviledge."
}

当前配置

modules:
  mod_http_api:
    admin_ip_access: admin_ip_access_rule

acl:
  admin_ip_acl:
     ip:
       - "xx.xx.xx.xx/32"

access:
  admin_ip_access_rule:
    admin_ip_acl:
       - all

编辑

出于测试目的,我启用了以下配置:

commands_admin_access: configure
commands:
  - add_commands:
     - status
     - get_roster
     - change_password
     - register
     - unregister
     - registered_users
     - muc_online_rooms
     - oauth_issue_token

add_commands我能够为标签内列出的那些命令成功运行用户和管理员命令。它按预期工作。但是,我仍然面临一些问题,大多数与 IP 限制有关。从未列出的主机调用 APIadmin_ip_acl也成功,我希望在调用非白名单主机时出现错误

4

1 回答 1

0

API 需要 OAuth 令牌进行身份验证。您需要生成一个具有正确范围的。当命令仅限于管理员时,您还需要传递 HTTP 标头:“X-Admin: true”以让 ejabberd 知道它应该考虑您想充当管理员。

于 2016-09-01T12:21:07.747 回答