gpt4 book ai didi

mysql - OpenFire 集成外部数据库

转载 作者:可可西里 更新时间:2023-11-01 07:45:11 26 4
gpt4 key购买 nike

您好,我在将现有的 OpenFire 安装与现有的数据库集成时遇到了问题。

我有 2 个数据库(例如)

  1. db_mainsite
  2. db_openfire

在我的 db_mainsite 中,我有一个名为 tbl_user 的表,其中有 2 列,即 gw_userunique 和 gw_password(VARCHAR 255,但是使用 SHA-1 哈希算法)。

两个数据库位于同一台机器(服务器)中,因此具有相同的物理位置。

在我的 conf/openfire.xml 中我设置了以下几行

<jive>
...
<jdbcProvider>
<driver>com.mysql.jdbc.Driver</driver>
<connectionString>jdbc:mysql://localhost/db_mainsite?user=username&amp;password=secret</connectionString>
</jdbcProvider>
<provider>
<auth>
<className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>
</auth>
</provider>
<jdbcAuthProvider>
<passwordSQL>SELECT password FROM tbl_user WHERE gw_userunique=?</passwordSQL>
<passwordType>sha1</passwordType>
</jdbcAuthProvider>
...
</jive>

遗憾的是,每当我尝试使用存储在 db_mainsite 中的用户名 + 密码登录时,它总是失败。

我也重新启动了 OpenFire。

谁能告诉我哪里出了问题?

干杯,

最佳答案

无需修改配置文件,只需在您的 openfire 数据库中运行脚本(已在 3.10.3 中验证):

## add jdbc drive
INSERT INTO `ofproperty` VALUES ('jdbcProvider.driver', 'com.mysql.jdbc.Driver');
## external membership database connection
INSERT INTO `ofproperty` VALUES ('jdbcProvider.connectionString', 'jdbc:mysql://youripaddress:3306/db_mainsite?user=root&password=root');
## auth
UPDATE `ofproperty` SET propValue='org.jivesoftware.openfire.auth.JDBCAuthProvider' WHERE NAME='provider.auth.className';
## search password
INSERT INTO `ofproperty` VALUES ('jdbcAuthProvider.passwordSQL', 'SELECT plainPassword FROM dzmembership WHERE id= ?');
## encrypted type:plain,md5,sha1,sha256,sha512
INSERT INTO `ofproperty` VALUES ('jdbcAuthProvider.passwordType', 'plain');
## displyed in admin console
UPDATE `ofproperty` SET propValue='org.jivesoftware.openfire.user.JDBCUserProvider' WHERE NAME='provider.user.className';
## uyser info in admin console
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.loadUserSQL', 'SELECT username AS NAME,concat(username,''_'',nickname) FROM dzmembership WHERE id=?');
## user amount
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.userCountSQL', 'SELECT COUNT(*) FROM dzmembership');
## all users
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.allUsersSQL', 'SELECT id FROM dzmembership');
## search
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.searchSQL', 'SELECT id FROM dzmembership WHERE');
## username displayed in console
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.usernameField', 'username');
## id displayed in console
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.nameField', 'id');
## email displayed in console
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.emailField', 'email');
##admin username
INSERT INTO `ofproperty` VALUES ('admin.authorizedJIDs', '13cb2932-e855-4c3e-8e54-a58e0135802d@ipaddress');
UPDATE ofproperty SET propValue='ipaddress' WHERE NAME='xmpp.domain'

关于mysql - OpenFire 集成外部数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17715319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com