ejabberd 不会持久存储名册

Posted

技术标签:

【中文标题】ejabberd 不会持久存储名册【英文标题】:ejabberd doesn't store roster persistently 【发布时间】:2016-01-10 13:25:35 【问题描述】:

我正在使用以下图像在 Kubernetes 中运行 ejabberd:https://hub.docker.com/r/jprjr/ejabberd/

我尝试通过从 Pidgin 中删除帐户并再次添加来测试持久性。 Pidgin 不会加载之前添加的花名册。

我尝试了 Mnesia 和 Postgres。 Postgres 数据库似乎没有受到 ejabberd 的影响,但我也没有在日志中发现任何错误。

任何想法,什么可能导致这种行为?

我的配置:

hosts: ["example.com"]
loglevel: 4
hide_sensitive_log_data: true

listen:
  - port: 5222
    module: ejabberd_c2s
    access: c2s
    shaper: c2s_shaper
    zlib: true
    starttls_required: true
    starttls: true
    certfile: "/etc/ejabberd/ejabberd.pem"
  - port: 5269
    module: ejabberd_s2s_in
    shaper: s2s_shaper
    max_stanza_size: 65536
    s2s_use_starttls: true
    s2s_certfile: "/etc/ejabberd/ejabberd.pem"
    transport: tcp

auth_method: [ldap]
ldap_servers: ["ldap.example.com"]
ldap_port: 389
ldap_rootdn: "CN=ejabberd,OU=ServiceAccounts,DC=example,DC=com"
ldap_password: "*********"
ldap_base: "OU=User,DC=example,DC=com"
ldap_uids:
  - "sAMAccountName": "%u"
ldap_filter: "(&(objectClass=user)(memberof=CN=ejabberdUsers,CN=Users,DC=example,DC=com))"

# tried with and w/o
# default_db: odbc
# sm_db_type: odbc
# odbc_type: pgsql
# odbc_server: "db.example.com"
# odbc_password: "********"
# odbc_port: 10051

shaper:
  normal: 1000
  fast: 50000

acl:
  admin:
    user:
      "admin1": "example.com"
      "admin2": "example.com"

access:
  local:
    local: allow
  c2s:
    blocked: deny
    all: allow

【问题讨论】:

您没有显示整个配置文件。我们看不到您是否启用了名册模块以及配置了哪个数据库。请填写并澄清。 【参考方案1】:

ejabberd 商店名册持续存在。

您需要在 ejabberd 配置文件中启用 mod_roster 并设置您想要的数据库,例如

mod_roster:
db_type: odbc

您似乎缺少配置以获取有关配置的更多详细信息,请检查这些链接。 https://github.com/processone/ejabberd/blob/master/test/ejabberd_SUITE_data/ejabberd.yml

https://www.process-one.net/docs/ejabberd/guide_en.html

【讨论】:

以上是关于ejabberd 不会持久存储名册的主要内容,如果未能解决你的问题,请参考以下文章

ejabberd:跟踪名册和存在导致错误

Ejabberd 的名册管理

ejabberd - 基于外部 REST API 的自定义花名册模块

在 ejabberd 中添加共享名册中的所有用户

ejabberd有时在添加名册时无法设置昵称

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