Ich habe MongooseIM zum Testen in einer VM installiert. Ich versuche, die Benutzerauthentifizierung über eine externe Postgres-Datenbank durchzuführen. Wenn ich einen neuen Benutzer mit
mongooseimctl register user host password
Es fügt eine neue Zeile in meiner Benutzertabelle meiner Datenbank hinzu. Wenn ich jedoch versuche, eine Verbindung über XMPP-Clients herzustellen, erhalte ich die folgende Fehlermeldung:
{message,<<"column \"pass_details\" does not exist">>}
Ich habe das Schema heruntergeladen vonhttps://raw.githubusercontent.com/processone/ejabberd/master/sql/pg.sqlund es hat keine Spalte „pass_details“ in seiner Benutzertabelle. Ich habe versucht, ein Schema speziell für MongooseIm zu finden, aber keines gefunden. Gibt es ein anderes Schema für MongoosIM? Oder kann ich es beheben, indem ich einfach die Spalte „pass_details“ hinzufüge? Was sollte dann der Wert der Spalte sein? Oder gibt es andere Möglichkeiten, dies zu beheben?
2015-02-25 15:21:07.684 [debug] <0.1802.0>@ejabberd_commands:execute_command2:339 Executing command ejabberd_admin:register with Args=[<<"bob">>,<<"localhost">>,<<"PASSWORD">>]
2015-02-25 15:21:07.685 [debug] <0.1627.0>@ejabberd_odbc:sql_query_internal:574 Postres, Send query
[<<"select password, pass_details from users where username='">>,<<"bob">>,<<"';">>]
2015-02-25 15:21:07.695 [error] <0.1802.0>@ejabberd_auth:is_user_exists:346 The authentication module ejabberd_auth_odbc returned an error
when checking user <<"bob">> in server <<"localhost">>
Error message: [{severity,'ERROR'},{code,<<"42703">>},{message,<<"column \"pass_details\" does not exist">>},{position,18},{file,<<"parse_relation.c">>},{line,2655},{routine,<<"errorMissingColumn">>}]
2015-02-25 15:21:07.696 [debug] <0.1624.0>@ejabberd_odbc:sql_query_internal:574 Postres, Send query
[<<"insert into users(username, password) values ('">>,<<"bob">>,<<"', '">>,<<"PASSWORD">>,<<"');">>]
Antwort1
Das von Ihnen heruntergeladene Schema ist für die neueste Version von ejabberd. Ich empfehle Ihnen, sicherzustellen, dass Sie die neueste Version von ejabberd mit dem von Ihnen heruntergeladenen Schema verwenden.