Я делаю чат-приложение с smack. Я новичок в этой технологии.Создание нового пользователя с Smack 4.2.0-beta1 на ejabberd throws XMPP Исключение: запрещено - auth
Я создал некоторых пользователей ручного управления с сервера Ejabberd. Используя этих пользователей, я сделал один-один чат и групповой чат.
Но я пытался создать нового пользователя от андроида кода Но я получаю это ниже ошибки
XMPPError: forbidden - auth
08-02 08:23:36.273 31097-31097/com.agarangroup.hello W/System.err: at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:232)
08-02 08:23:36.273 31097-31097/com.agarangroup.hello W/System.err: at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:207)
Это конфигурация я имею в ejabberd сервере
announce [{allow,[{acl,admin}]}]
c2s [{deny,[{acl,blocked}]},{allow,[{acl,all}]}]
c2s_shaper [{none,[{acl,admin}]},{normal,[all]}]
configure [{allow,[{acl,admin}]}]
local [{allow,[{acl,all}]}]
max_user_offline_messages [{5000,[{acl,admin}]},{100,[all]}]
max_user_sessions [{10,[all]}]
muc_create [{allow,[{acl,all}]}]
pubsub_createnode [{allow,[{acl,local}]}]
register [{allow,[{acl,all}]}]
s2s_shaper [{fast,[all]}]
trusted_network [{allow,[{acl,loopback}]}]
Обновлено:
Здесь я инициализирую свое соединение
private void initialiseConnection() {
DomainBareJid serviceName = null;
try {
serviceName = JidCreate.domainBareFrom(ServiceAddress);
} catch (XmppStringprepException e) {
e.printStackTrace();
}
XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration
.builder().setKeystoreType(null);
// XMPPTCPConnectionConfiguration.builder().setKeystoreType(null);
config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
config.setServiceName(serviceName);
config.setHost(serverAddress);
config.setPort(5222);
config.setDebuggerEnabled(true);
XMPPTCPConnection.setUseStreamManagementDefault(true);
connection = new XMPPTCPConnection(config.build());
XMPPConnectionListener connectionListener = new XMPPConnectionListener();
connection.addConnectionListener(connectionListener);
}
Я связь это соединение после инициализации
connection.connect();
DeliveryReceiptManager dm = DeliveryReceiptManager
.getInstanceFor(connection);
dm.setAutoReceiptMode(AutoReceiptMode.always);
dm.addReceiptReceivedListener(new ReceiptReceivedListener() {
@Override
public void onReceiptReceived(Jid fromJid, Jid toJid, String receiptId, Stanza receipt) {
}
});
connected = true;
Method создать пользователя
public void createNewUser(){
try {
/* UserRegisterUtil.registerAccount(connection,"Mathan","[email protected]");
connection.disconnect();
connection.connect();*/
Localpart lp = Localpart.from("IamHere");
// Registering the user
AccountManager accountManager = AccountManager.getInstance(connection);
accountManager.sensitiveOperationOverInsecureConnection(true);
accountManager.createAccount(lp, "mathan123"); // Skipping optional fields like email, first name, last name, etc..
Toast.makeText(context, "=>User creation completed....",
Toast.LENGTH_LONG).show();
Log.d("xmpp", ">User creation completed....!");
} catch (SmackException.NoResponseException e) {
e.printStackTrace();
} catch (XMPPException.XMPPErrorException e) {
e.printStackTrace();
} catch (NotConnectedException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (XMPPException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (SmackException e) {
e.printStackTrace();
}
}
Это ошибка, я получил это говорит Отказано ACL. Но я не знаю, как изменить его в windows ejabberd server.
<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>
Может кто-нибудь сказать мне, как создать нового пользователя, что я хочу изменить в этом файле конфигурации?
Также у меня есть некоторые сомнения
Как получить сообщения в автономном режиме в андроида с помощью привкусом библиотеки?
Как получить историю чата?
Я уже подключился к серверу. Также я изменил имя пользователя в маленьком письме, но он говорит то же самое. :( – MathaN
Я обновил свой вопрос, вы можете посмотреть на него :) @MrPk – MathaN
это больше похоже на проблему Ejabber + ACL (LDAP?), Однако может быть интересно прочитать часть при подключении к серверу – MrPk