允许ejabberd_service(Jabber组件协议)修改用户的名单

时间:2015-06-12 10:59:33

标签: xmpp ejabberd node-xmpp

我正在尝试使用ejabberd_service(这是Jabber组件协议实现,http://xmpp.org/extensions/xep-0114.html)来将ejabberd与外部应用程序集成。

用例是要求订阅并由外部应用程序代表用户向用户的名单添加项目。我管理ejabberd集群和外部应用程序,所以我认为他们都相互信任。

问题在于,即使正确发送和接收节,也不会在用户的名单中看到任何变化。即使我将ejabberd_service的service_check_from选项设置为false并将ejabberd_service作为管理器添加到mod_roster配置,也是如此。

我也没有在ejabberd日志中看到任何错误/警告。

我想知道根据XMPP协议,是否有可能代表用户通过外部可信应用程序修改用户的名单,如果是,如何在ejabberd中配置它?

2 个答案:

答案 0 :(得分:0)

自版本14.x

以来,

Remote Roster Management支持包含在ejabberd中

答案 1 :(得分:0)

Jabber组件协议(XEP-0114)明确指出它不能代表用户行事。它只能发送带有自己子域的数据包。

XEP-0356 Priviledged entity可能会在未来通过在附加的XMPP服务器中为具有更多功能的可信组件提供模型来改变它。但是,它还没有在ejabberd中实现。

我认为目前最好的选择是编写自定义ejabberd插件或实现XEP-0356。

相关问题