【问题标题】:XEP-0163 support and mod_pubsub configurationXEP-0163 支持和 mod_pubsub 配置
【发布时间】:2021-06-27 16:19:32
【问题描述】:

我在 Gentoo 服务器上使用 ejabberd 20.04,我很难让 XEP-0163(个人事件协议)再次工作。我正在“再次”写作,因为它在某些时候奏效了。但我的设置可以追溯到 2009 年,版本 2.something...

首先,这是我的ejabberd.yml 配置文件中的相关当前配置位。

modules:
  ...
  mod_caps: {}
  mod_pubsub:
    access_create_node: local
    default_node_config:
      notification_type: normal
      notify_retract: false
      max_items: 10
    plugins:
      - flat
      - pep

append_host_config:
  "MYSERVER.COM":
    modules:
      mod_register:
        access:
          - deny
    ...
    auth_method: external
    extauth_program: "/path/to/some/script/ejabberd.py"

一切正常,但使用 Psi+(目前在 Windows 上为 v1.5.1477),例如在设置我的心情时,我收到了以下回复:

<iq id="aca5a" type="set">
  <pubsub xmlns="http://jabber.org/protocol/pubsub">
    <publish node="http://jabber.org/protocol/mood">
      <item id="current">
        <mood xmlns="http://jabber.org/protocol/mood">
          <sick/>
          <text>Grrrr</text>
        </mood>
      </item>
    </publish>
  </pubsub>
</iq>

<iq to="ME@MYSERVER.COM/Psi+" xml:lang="fr"
    from="ME@MYSERVER.COM" id="aca5a" type="error">
  <pubsub xmlns="http://jabber.org/protocol/pubsub">
    <publish node="http://jabber.org/protocol/mood">
      <item id="current">
        <mood xmlns="http://jabber.org/protocol/mood">
          <sick/>
          <text>Grrrr</text>
        </mood>
      </item>
    </publish>
  </pubsub>
  <error code="403" type="auth">
    <forbidden xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
  </error>
</iq>

我认为这是 ACL 的问题,所以我尝试将其替换为:

    access_create_node:
      allow: all

但我仍然有相同的答复。所以我知道存在身份验证问题,但我不明白是什么。

这可能是外部身份验证的问题吗?它对其他一切都运行良好,我在脚本日志中看不到任何错误(我写的东西输出了一些关于 ejabberd 请求的日志)。

(不确定我的问题是否属于这里,我猜它更适合 Serverfault 但 ProcessOne 正在重定向这里。)

【问题讨论】:

    标签: xmpp ejabberd ejabberd-module


    【解决方案1】:

    我安装了ejabberd 20.04,像你一样配置了mod_pubsub,并将example checl_pass_null.pl设置为extauth程序

    然后我发送你相同的 IQ 节,并且 ejabberd 正确回复。

    您可以尝试使用该 extauth 脚本,如果它正常工作,那么您的 extauth 脚本中缺少某些内容。

    如果示例 check_pass_null.pl 仍然失败,那么问题可能在于您对默认配置所做的其他更改。您可以尝试使用默认配置(几乎没有更改)。如果可行,您可以调查哪些自定义选项会破坏 pubsub。

    【讨论】:

    • 我尝试了check_pass_null.pl 脚本,但它仍然无法正常工作。实际上,日志中甚至没有一个条目。我编辑了配置并重新加载了它(ejabberdctl reload_config),在日志中看到脚本正在启动,我进行了身份验证,但是当我试图调整心情时,什么也没有。仍然是相同的错误节响应。尝试设置心情,调整...时没有任何内容传递给身份验证脚本是否正常?
    • 我会尝试使用默认配置,但我想先保存 mnesia 数据库。干净的开始。
    • XMPP客户端登录、修改密码、删除账号时使用auth脚本。设置心情与认证方式无关吧?
    • 感谢@badlop 的澄清;那正是我所想。所以我的问题应该在于配置。当我有几个小时的时候,我会尝试保存数据库、我的配置并从头开始。
    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2019-12-16
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多