Как зарегистрировать внутриполосного пользователя в конкретном виртуальном хосте в Ejabberd с помощью Smack Client?

Я использую клиент Smack 4.3.1 и хочу зарегистрировать пользователя, используя метод внутренней регистрации (используя AccountManager Smack).

Я мог бы создать нового пользователя с XMPP-соединением «admin», и пользователи создаются в домене, где есть пользователь-администратор, скажем, [email protected]

Мое требование: я хочу создать пользователя на другом виртуальном хосте - скажем, [email protected], используя то же XMPP-соединение «admin». Является ли это возможным ?

Я попробовал «регистрацию в группе» с пользователем «[email protected]», у которого есть права администратора. выдает ошибку "XMPPError: конфликт - отмена"

Мой код:

    AccountManager accountManager = AccountManager.getInstance(connection1);
    System.out.println("Is Account creation supported " +accountManager.isSupported() + " Account creation supported : " + accountManager.supportsAccountCreation());
    accountManager.sensitiveOperationOverInsecureConnection(true);

    EntityFullJid entityFullJid = JidCreate.entityFullFrom("[email protected]/resource1");

    Domainpart domainpart = entityFullJid.getDomain();

    Localpart localpart = entityFullJid.getLocalpart();

    System.out.println("local part of account " + localpart);

    accountManager.createAccount(localpart, "password");

можно ли создать user1 в example.com, используя внутреннюю регистрацию?

мои пользователи-администраторы

  admin:
    user:
      - "admin": "ec2-xxxxx.us-west-2.compute.amazonaws.com"
      - "mnallath1": "example.com"

мои виртуальные хосты

hosts:
  - "ec2-xxxxx.us-west-2.compute.amazonaws.com"
  - "example.com"
  - "example.net"

person Murugesan Nallathambi    schedule 11.06.2019    source источник


Ответы (1)


Глядя на исходный код, теперь можно регистрировать новые учетные записи с помощью IBR с другого виртуального хоста, даже если это делается с использованием учетной записи администратора.

Функция check_from возвращает отказ, поскольку используемая учетная запись не принадлежит виртуальному хосту, на котором предпринимается попытка регистрации: https://github.com/processone/ejabberd/blob/master/src/mod_register.erl#L260

person Badlop    schedule 13.06.2019