Instalé MongooseIM en una máquina virtual para realizar pruebas. Estoy intentando realizar la autenticación de usuario desde una base de datos externa de Postgres. Cuando registro un nuevo usuario usando
mongooseimctl register user host password
Agrega una nueva fila en la tabla de usuarios de mi base de datos. Sin embargo, cuando intento conectarme usando clientes xmpp, aparece el error:
{message,<<"column \"pass_details\" does not exist">>}
He descargado el esquema dehttps://raw.githubusercontent.com/processone/ejabberd/master/sql/pg.sqly no tiene una columna "pass_details" en su tabla de usuarios. Intenté encontrar un esquema específicamente para MongooseIm pero no encontré ninguno. ¿Existe un esquema diferente para MongoosIM? ¿O puedo solucionarlo simplemente agregando la columna pass_details? ¿Cuál debería ser entonces el valor de la columna? ¿O hay otras formas de solucionar este problema?
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">>,<<"');">>]
Respuesta1
El esquema que ha descargado es para la última versión de ejabberd. Le sugiero que se asegure de utilizar la última versión de ejabberd con el esquema que ha descargado.