disco#items 返回错误代码 403

disco#items is returning error code 403

我正在尝试获取在服务器上注册的所有用户的列表。我的服务器是 Ejabberd。当我在 all users 节点上使用服务发现时,出现 403 错误。这是我的请求节和错误节 -

请求

<iq id="U7" type="get" to="server.lt" xmlns="jabber:client">
  <query node="all user" xmlns="http://jabber.org/protocol/disco#items" />
</iq>

回应

<iq from="server.lt" to="user@server.lt/res" id="U8" type="error" xmlns="jabber:client">
  <query xmlns="http://jabber.org/protocol/disco#items" node="all users" />
  <error code="403" type="auth">
    <forbidden xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
  </error>
</iq>

当我检查服务器时,我在那里没有找到任何 mod_disco,所以我添加了新的 mod_disco 模块。我需要在服务器上做进一步的修改还是我的请求节有问题?

更新:
我尝试通过授予我的用户管理员访问权限并且该命令确实有效,但是为每个用户授予管理员访问权限是不切实际的。有什么方法可以使用客户端或服务器来完成,而无需使用用户的管理员访问权限?

all users 信息节点的访问被硬编码为使用 configure 访问规则。在默认配置中,它被设置为只允许服务器管理员:

%% Only admins can use the configuration interface:
{access, configure, [{allow, admin}]}.

无法将 ejabberd 配置为仅授予 all users 访问权限而不授予配置其他所有内容的访问权限,全有或全无。您必须更改源代码才能实现您想要的。