MongoosIM 无法从 postgres 数据库进行身份验证

MongoosIM 无法从 postgres 数据库进行身份验证

我已经在虚拟机中安装了 MongooseIM 进行测试。我尝试从外部 postgres 数据库进行用户身份验证。当我使用以下方式注册新用户时

mongooseimctl register user host password 

它在我的数据库的用户表中添加了一个新行。但是,当我尝试使用 xmpp 客户端进行连接时,出现错误:

{message,<<"column \"pass_details\" does not     exist">>}

我已经从https://raw.githubusercontent.com/processone/ejabberd/master/sql/pg.sql并且其用户表中没有“pass_details”列。我尝试查找专门针对 MongooseIm 的架构,但没有找到。MongoosIM 是否有不同的架构?或者我是否可以通过添加 pass_details 列来修复它?那么该列的值应该是什么?或者还有其他方法可以修复此问题吗?

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">>,<<"');">>]

答案1

您下载的架构适用于 ejabberd 的最新版本。我建议您确保使用 ejabberd 的最新版本以及您下载的架构。

相关内容