#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.