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
访问权限而不授予配置其他所有内容的访问权限,全有或全无。您必须更改源代码才能实现您想要的。
我正在尝试获取在服务器上注册的所有用户的列表。我的服务器是 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
访问权限而不授予配置其他所有内容的访问权限,全有或全无。您必须更改源代码才能实现您想要的。