Как зарегистрировать внутриполосного пользователя, в частности, Virtual Host в Ejabberd, с помощью Smack Client? - PullRequest
0 голосов
/ 11 июня 2019

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

Я могу создать нового пользователя с XMPP-соединением "admin", и пользователи будут созданы вдомен, где находится администратор, скажем, user1@ec2-xxxxx.us-west-2.compute.amazonaws.com

Мое требование: я хочу создать пользователя на другом виртуальном хосте, например, user1 @ example.com, используя то же самое "admin" соединение XMPP.Является ли это возможным ?

Я пытался "в регистрации группы" с пользователем "mnallath1@example.com", который имеет права администратора.он выдает ошибку «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("user1@example.com/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"

1 Ответ

1 голос
/ 13 июня 2019

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

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

...