ejabberd 不会持久存储花名册

ejabberd doesn't store roster persistently

我是 运行 在 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

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