我正在试图获取所有在服务器上注册的用户的列表。我的服务器是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模块。我是否需要在服务器上做进一步的修改,还是在我的请求节中有任何问题?
更新:
我尝试给我的用户管理访问权,这个命令确实有效,但是给每个用户一个管理权限是不实际的。我是否可以使用客户端或服务器来完成这个任务,而不需要用户使用管理访问?
发布于 2015-01-13 13:53:00
对all users信息节点的访问是硬编码的,以使用configure访问规则。在默认配置中,它只允许服务器管理员:
%% Only admins can use the configuration interface:
{access, configure, [{allow, admin}]}.没有方法可以配置ejabberd来提供对all users的访问,而不提供配置其他一切的访问权限,这就是全部或根本不存在。您必须更改源代码以实现您想要的结果。
https://stackoverflow.com/questions/27922654
复制相似问题