Xmpp 配置Jabber外部组件以代表任何用户发送节

Xmpp 配置Jabber外部组件以代表任何用户发送节,xmpp,ejabberd,Xmpp,Ejabberd,我不久前在某个地方读到,可以配置外部jabber组件(XEP-0114)来代表任何用户发送XMPP节。例如,假设我有一个组件绑定到(component.localhost),我希望它发送一个带有“from”属性的消息节user@localhost“ 我正试图通过ejabberd实现这一点。如果我必须破解ejabberd src以使其正常工作(如果可能的话),我不会感到惊讶。从技术上讲,您必须实际编写组件,但这很容易做到。 您必须首先混淆ejabberd,以便它使用给定的componetjid和密

我不久前在某个地方读到,可以配置外部jabber组件(XEP-0114)来代表任何用户发送XMPP节。例如,假设我有一个组件绑定到(component.localhost),我希望它发送一个带有“from”属性的消息节user@localhost“


我正试图通过ejabberd实现这一点。如果我必须破解ejabberd src以使其正常工作(如果可能的话),我不会感到惊讶。

从技术上讲,您必须实际编写组件,但这很容易做到。 您必须首先混淆ejabberd,以便它使用给定的componetjid和密码接受特定组件上的连接。默认配置文件有几个示例,例如网关


完成此操作后,使用此组件的凭据连接XMPP库/客户端,您就可以开始了!唯一的限制是发送有效的XML。

从技术上讲,您必须实际编写组件,但这很容易做到。 您必须首先混淆ejabberd,以便它使用给定的componetjid和密码接受特定组件上的连接。默认配置文件有几个示例,例如网关


完成此操作后,使用此组件的凭据连接XMPP库/客户端,您就可以开始了!唯一的限制是您发送有效的XML。

您的组件通常只允许发送看似来自*@component.domain.com而非@.domain.com的节。这是一个安全特性


如果需要此功能,您可能需要编写服务器插件而不是外部组件。

您的组件通常只允许发送看似来自*@component.domain.com而非@.domain.com的节。这是一个安全特性


如果需要此功能,可能需要编写服务器插件而不是外部组件。

如果使用ejabberd,可以使用服务定义中的
{service\u check\u from,false}
选项禁用对“from”属性的验证

但是请记住,这要求JID的“主机”部分与组件的名称匹配


有关所有血淋淋的详细信息,请参阅。

如果您使用的是ejabberd,则可以使用服务定义中的
{service\u check\u from,false}
选项禁用对“from”属性的验证

但是请记住,这要求JID的“主机”部分与组件的名称匹配


有关血淋淋的详细信息,请参阅。

嗨,朱利安。。。我已经有几个组件在运行(绑定到component.localhost),并且我能够成功地将带有“from”属性的xmpp节发送到user@component.localhost". 但我正在寻找配置步骤(最好是使用ejabberd),它允许我的组件代表user@localhost". 当前,当我的组件尝试这样做时,他们从jabber服务器收到400(错误请求)错误。。。我已经有几个组件在运行(绑定到component.localhost),并且我能够成功地将带有“from”属性的xmpp节发送到user@component.localhost". 但我正在寻找配置步骤(最好是使用ejabberd),它允许我的组件代表user@localhost". 目前,当我的组件尝试执行此操作时,他们从jabber服务器收到400(错误请求)错误。您好,Davux,似乎是您救了我完成了我正在使用的服务器组件,现在我可以在我的外部组件中使用相同的东西了。。。。这正是我想要的(虽然我还没有测试,但看起来很有希望)。。。。感谢Xhi Davux,看来你救了我完成我正在开发的服务器组件,现在我可以在我的外部组件中使用相同的东西了。。。。这正是我想要的(虽然我还没有测试,但看起来很有希望)。。。。谢谢