整合用戶信息表
本人在項目中使用的是mysql數據庫。通過修改openfire項目數據庫ofproperty表來達到自定義用戶功能.
sql:
--設置JDBC連接方式
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcProvider.connectionString',
'jdbc:mysql://localhost:3306/cuoa?user=root&password=123456');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcProvider.driver', 'com.mysql.jdbc.Driver');
--設置管理員賬號
insert into OFPROPERTY (NAME, PROPVALUE)
values ('admin.authorizedJIDs', '[email protected]');
--自定義用戶認證
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcAuthProvider.useConnectionProvider', 'true');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcAuthProvider.passwordSQL', 'select ''123456'' as pwd from
login_user t where t.user_id=?');
insert into OFPROPERTY (NAME, PROPVALUE)
<p>values ('jdbcAuthProvider.passwordType', 'plain');</p>
--自定義用戶管理
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.allUsersSQL', 'select user_id from login_user');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.nameField', 'user_id');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.searchSQL', 'select user_id from login_user t where user_id=?');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.useConnectionProvider', 'true');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.emailField', 'email');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.userCountSQL', 'select count(*) from login_user t');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.loadUserSQL', 'select user_id,user_name,email from user_info where user_id=?');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.usernameField', 'user_id');
--使用不同的數據源
update OFPROPERTY set
PROPVALUE='org.jivesoftware.openfire.user.JDBCUserProvider'
where NAME='provider.user.className';
update OFPROPERTY set
PROPVALUE='org.jivesoftware.openfire.auth.JDBCAuthProvider'
where NAME='provider.auth.className';
執行上面的sql後重啓openfire服務即可。
可能出現的問題:重啓服務後用管理員賬號無法登陸。
解決方法:
1. 確認 ofproperty 表中 admin.authorizedJIDs 已配置管理員賬號。
2. ofproperty 表中xmpp.domain 值爲ip地址。非計算機名稱。(使用計算機名稱會導致管理員賬號無法登錄)