安装什么的我就不多说了,主要讲重点
1.openfire安装完启动之后admin登陆之后,打开系统属性
编辑属性org.jivesoftware.openfire.auth.DefaultAuthProvider为org.jivesoftware.openfire.auth.JDBCAuthProvider,
编辑属性org.jivesoftware.openfire.user.DefaultUserProvider为org.jivesoftware.openfire.user.JDBCUserProvider,如图
这里简单说明
前者为登陆验证,后者为现有系统用户查询工具,接着看下面的配置
2.增加细节属性
可通过系统属性增加配置
也可以直接插入当前openfire所连接的数据中的ofproperty表
INSERT INTO `ofproperty` VALUES ('jdbcProvider.drive', 'com.mysql.jdbc.Driver');
INSERT INTO `ofproperty` VALUES ('jdbcProvider.connectionString', 'jdbc:mysql://localhost:3306/test?user=root&password=root');
INSERT INTO `ofproperty` VALUES ('admin.authorizedJIDs', 'admin@localhost');
INSERT INTO `ofproperty` VALUES ('jdbcAuthProvider.passwordSQL', 'select password from sys_user where username=?');
INSERT INTO `ofproperty` VALUES ('jdbcAuthProvider.passwordType', 'plain');
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.loadUserSQL', 'select id,username,email from sys_user where username=?');
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.userCountSQL', 'select count(*) from sys_user');
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.allUsersSQL', 'select username from sys_user');
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.searchSQL', 'select username from sys_user where');
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.usernameField', 'username');
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.nameField', 'name');
INSERT INTO `ofproperty` VALUES ('jdbcUserProvider.emailField', 'email');
分别解释上面的属性
1.jdbcProvider.driver这个数数据库启动类,上面的为mysql驱动,一目了然
2.jdbcProvider.connectionString 这个为连接其他数据库,我们的目的是集成现有用户系统,那自然是现有数据库连接url了
3.admin.authorizedJIDs 这个为管理员用户配置,'admin@localhost''值得意思为用户名为admin,@为固定写法,localhost为当前的域,怎么查看当前域,回到系统属性页面xmpp.domain对应的值即为当前域,管理员账号可以以逗号分割配置多个
4.jdbcAuthProvider.passwordType该属性表示目前用户密码的加密方式,plain表示为明文,还可选md5等加密方式
5.jdbcUserProvider.loadUserSQL其实就是查出对应用户名的密码,为登陆验证做准备,上面的admin就是其中一个用户名
还有其他属性就不多说了
上面这些都搞定后重启openfire就可以用现有用户登录了
关于调试,有异常的话可以可以到安装目录查看
这样就能快速知道出现了什么问题,可用过jd-gui.exe查看一些代码如:
JDBCUserProvider (位于安装目录下的lib目录下的openfire.jar包内)