Исключение при создании пользователя на ejabberd16.09: Отклонено ACL

#android #xmpp #ejabberd #smack

#Android #xmpp #ejabberd #удар

Вопрос:

Я установил ejabberd16.09 в Linux. An Когда я создаю нового пользователя в Android, получаю эти коды:

 <iq from='hsoft.com' to='kfb@hsoft.com/Smack' id='T61DB-59' type='error'>        
    <query xmlns='jabber:iq:register'><username>ddk</username>
    <password>123456</password><registered/></query><error code='403' type='auth'>
    <forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/><text xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>
    Denied by ACL</text></error></iq>
  

И мой файл ‘conf/ ejabberd.yml’ в Linux :

   ## To disable in-band registration, replace 'allow' with 'deny'.
  register:
    - allow 
  ## Only allow to register from localhost
  trusted_network:
    - allow
  ## Do not establish S2S connections with bad servers
  ## s2s:
  ##   - deny:
  ##     - ip: "XXX.XXX.XXX.XXX/32"
  ##   - deny:
  ##     - ip: "XXX.XXX.XXX.XXX/32"
  ##   - allow
  

Мой код Android :

     private void XmppRegister(){
        AccountManager account = AccountManager.getInstance(con);
        account.sensitiveOperationOverInsecureConnection(true);
        try {
            account.createAccount("ddk".toLowerCase(), "123456");
            Log.d("PushTest", "register successfully");
        } catch (SmackException.NoResponseException e) {
            e.printStackTrace();
        } catch (XMPPException.XMPPErrorException e) {
            e.printStackTrace();
        } catch (SmackException.NotConnectedException e) {
            e.printStackTrace();
        }
    }
  

Пожалуйста, помогите мне! Спасибо!

Ответ №1:

Вы должны добавить

 AccountManager.getInstance(connection)
                .sensitiveOperationOverInsecureConnection(true);
  

чтобы отключить ACL при регистрации нового пользователя, затем вернитесь к настройкам по умолчанию:

 AccountManager.getInstance(connection)
                .sensitiveOperationOverInsecureConnection(false);
  

Комментарии:

1. Спасибо! Но я добавил это в свой код, и все еще «Отклонено ACL». Я не знаю resson.