转自:http://lishao378.blog.sohu.com/146785554.html
看下测试数据库结构和内容:
mysql> use test;
Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| user |
+----------------+
1 row in set (0.00 sec)
mysql> select * from user;
+-----+-------+----------------------------------+-----------------+
| uid | uname | upass | email |
+-----+-------+----------------------------------+-----------------+
| 1 | admin | admin | admin@localhost |
| 2 | test | 5c177f35077e9e0a4a5f7cb4dbc96937 | test@localhost |
+-----+-------+----------------------------------+-----------------+
2 rows in set (0.00 sec)
经测试,在mysql中执行以下代码,可以有效进行集成:
;//-----------------------------------------------------------------------------------------------------------
UPDATE `openfire`.`ofProperty` SET propValue='org.jivesoftware.openfire.user.JDBCUserProvider' WHERE name='provider.user.className';
UPDATE `openfire`.`ofProperty` SET propValue='org.jivesoftware.openfire.auth.JDBCAuthProvider' WHERE name='provider.auth.className';
INSERT INTO `openfire`.`ofProperty` VALUES ('jdbcProvider.driver','com.mysql.jdbc.Driver'),
('jdbcProvider.connectionString','jdbc:mysql://localhost:3306/test?user=admin&password=admin'),
('admin.authorizedJIDs','admin@localhost,test@localhost'),
('jdbcAuthProvider.passwordSQL','SELECT upass FROM user WHERE uname=?'),
('jdbcAuthProvider.passwordType','plain'),
('jdbcUserProvider.loadUserSQL','SELECT uname,email FROM user WHERE uname=?'),
('jdbcUserProvider.userCountSQL','SELECT COUNT(*) FROM user'),
('jdbcUserProvider.allUsersSQL','SELECT uname FROM user'),
('jdbcUserProvider.searchSQL','SELECT uname FROM user WHERE'),
('jdbcUserProvider.usernameField','uname'),
('jdbcUserProvider.nameField','uname'),
('jdbcUserProvider.emailField','email');
;//-----------------------------------------------------------------------------------------------------------
若要继续整合用户组等信息,可以参考《Custom Database Integration Guide》,把相关属性添加到ofProperty数据表中。