Ich mache Chat-Anwendung mit Smack. Ich bin neu für diese Technologie.Erstellen neuer Benutzer mit Smack 4.2.0-Beta1 auf Ejabberd wirft XMPP Ausnahme: verboten - auth
Ich habe einige manuelle Benutzer von Ejabberd Server erstellt. Mit diesen Benutzern habe ich einen Chat und Gruppenchat gemacht.
Aber ich versucht, neue Benutzer von Android-Code erstellen Aber ich bin immer dies unter Fehler
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)
Dies ist die Konfiguration I in ejabberd Server
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}]}]
aktualisiert haben:
Hier initialisiere ich meine Verbindung
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);
}
Ich bin Verbindung diese Verbindung nach
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;
Methode initialisieren neuen Benutzer erstellen
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();
}
}
Es ist ein Fehler, den ich bekam es von ACL verweigert sagt. Aber ich weiß nicht, wie man es in Windows Ejabberd Server ändert.
<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>
Kann mir jemand sagen, wie man einen neuen Benutzer erstellen, was ich ändern in dieser Konfigurationsdatei wollen?
Auch habe ich einige Zweifel
Wie Offline-Nachrichten in Android mit Smack Bibliothek bekommen?
Wie bekomme ich Chat-Geschichte?
Ich habe bereits mit dem Server verbunden. Auch ich habe den Benutzernamen in Kleinbuchstaben geändert, aber es sagt immer noch dasselbe. :( – MathaN
Ich aktualisierte meine Frage können Sie auf sie aussehen :) @MrPk – MathaN
das klingt eher wie Ejabber + ACL (LDAP?) Problem, könnte aber interessant sein, den Teil zu lesen, wenn Sie eine Verbindung zum Server – MrPk