当前位置:首页 > openfire使用自定义用户表 - 图文
配置demo
1、登录到openfire后台管理系统,点开服务器管理器中的系统属性,如下图:
2、在这里可以进行openfire系统属性的配置与修改,而这个页面配置的内容保存在openfire数据库中ofproperty表中,可以打开看一下
里面的配置后续会解释,是一些openfire的系统设置。 3、现在的需要的是使用userID登陆
在openfire源码中找到org.jivesoftware.openfire.auth.JDBCAuthProvider,在文件中一开始,我们可以看到:
1
1
大概意思就是把provider.auth.className修改为 org.jivesoftware.openfire.auth.JDBCAuthProvider之后登陆验证就走JDBCAuthProvider的代码,下面还有一些需要配置的参数,规则都有了,进行配置吧。
3、根据自己的需要,配置如下:
配置完了后,重启openfire,可以登陆(数据库密码是明文的,不是加密过的,加密过得密码验证以后说),但是openfire后台管理系统登陆不进去 解决办法:查看ofproperty表中name字段为admin.authorizedJIDs的peopValue字段值,格式应为username@‘域名’,其中username应为表中存
2
在的数据,域名为name字段为xmpp.domain的peopValue字段值,ok现在通过spark与后台管理都可以登陆成功了
2 脚本例子
以下是聊天服务器配置脚本,在数据库openfire实例下运行此脚本即可完成自定义用户表配置。
-- 更改登录验证方式,用JDBC配置的用户表验证,如果无法insert就update原来的provider.auth.className insert into OFPROPERTY (NAME, PROPVALUE) values
( 'provider.auth.className','org.jivesoftware.openfire.auth.JDBCAuthProvider');
-- 更改用户查询方式,用JDBC配置的用户表作为聊天服务器用户表,如果无法insert就update原来的provider.user.className insert into OFPROPERTY (NAME, PROPVALUE) values
( 'provider.user.className','org.jivesoftware.openfire.user.JDBCUserProvider'); -- 设置JDBC连接方式
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcProvider.driver', 'com.mysql.jdbc.Driver'); insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcProvider.connectionString', 'jdbc:mysql://192.168.2.18:3306/openfire?user=root&password=root'); -- 自定义用户认证
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcAuthProvider.passwordSQL', 'select password from prepress.common_user where id = ? '); -- 用户表密码加密方式
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcAuthProvider.passwordType', 'md5'); -- 设置管理员账号
insert into OFPROPERTY (NAME, PROPVALUE) values ('admin.authorizedJIDs', '2595@192.168.2.18');-- 用户名@域 -- 自定义用户管理
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcUserProvider.allUsersSQL', 'select id from prepress.common_user ');
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcUserProvider.loadUserSQL', 'select nick_name as name,email from prepress.common_user where id = ? ');
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcUserProvider.userCountSQL', 'select count(*) from prepress.common_user ');
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcUserProvider.searchSQL', 'select id from prepress.common_user where ');
-- 用户的主键作为登录聊天系统的用户名
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcUserProvider.usernameField', 'id'); -- 后台【用户摘要】显示的名称字段
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcUserProvider.nameField', 'name'); -- 后台【用户摘要】显示的邮箱字段
insert into OFPROPERTY (NAME, PROPVALUE) values ('jdbcUserProvider.emailField', 'email'); -- 聊天服务器的域,设置为服务器IP即可
insert into OFPROPERTY (NAME, PROPVALUE) values ('xmpp.domain', '192.168.2.18');
3
共分享92篇相关文档