openfire服务器部署
Openfire 服务器部署以及自定义用户表格说明 安装下载openfire 服务器,官网地址:官网地址http://www.igniterealtime.org/projects/openfire/
Openfire 服务器部署以及自定义用户表格说明 安装
下载openfire 服务器,官网地址:官网地址http://www.igniterealtime.org/projects/openfire/。目前openfire 服务器版本已经升级到3.8.1版本了,跟根据不同操作系统选择不同的下载版本。如下图:

下载完成双击可运行的openfire_3_8_1.exe即可运行安装,如下图:

一路点击“下一步”,即可完成安装这样就可以运行了。如下图:
,
至此,我们的openfire 服务就安装部署完成了,但是它还不可以直接使用,必须经过相关参数的配置。
参数配置
接上图点击“完成”,服务器开始运行,如下图:

此时,我们打开浏览器在地址栏中输入url :http://127.0.0.1:9090/setup/index.jsp,即出现openfire 配置页面首页。如下图:
,
首先是语言设置,更具需要选择自己熟悉的语言,再次我就选择“中文”,点击“继续”进行下一步配置。如下图:

这是服务器的访问设置,“域”就是域名的意思,设置你以后访问openfire 服务器是的域名(注意:这个域名的配置和DNS 服务有关系,若没有DNS 服务器,通过此域名是不可以访问openfire 服务器的。),它默认是你的计算机名。它默认的后台管理端口是9090,也可以自行修改,但是不可与其他程序所用端口冲突,点击“继续”,进行下一步配置。如下图:
,
这里是数据库配置,可根据具体需要选择不同选项,在此我们选择第一项“标准数据库连接”,看它的解释就可以明白,它使用外部数据库并且使用openfire 自己的机制来管理数据库。点击“继续”进行下一步配置。如图:

这是数据库连接设置,“数据库驱动选项”是用来选则你需要连接的数据库类型的,openfire 已经集成目前主要流行的数据库类型,在此我已orcle 为例。如下图:

注意:“jdbc 驱动类”和“数据库URL ”不能写错,由于openfire 服务器是纯java 编写,目前数据库驱动只支持java 的JDBC连接,所以首先要把java的jdbc驱动jar包放在openfire安装目录的lib文件夹下,并重启服务器让其生效。否则就会报错,如下图:

正确放置jar包并重启后是这样的,如下图:

接下来,我们选择第一项进行初始化数据库,这个过程是自动完成的,会让你等待一段时间。点击“继续”后是设置后台管理员账户,根据自己的需求设置适当的用户名密码用来做后台管理是登陆,它的默认管理员名称是admin,密码自己设置。如下图:

至此,openfire服务的配置就完成了,数据库里面已自动初始化了很多openfire 的表格。如下图:


你可以用刚才设置密码登录到后台看一看了。
,自定义用户表格
Openfire 服务器自己的表格名称叫做OFUSER ,它的结构如下图:

如果把openfire 集成到其他的应用中,直接使用openfire 自己的用户表就很不方便了。解决办法是我们通过修改openfire 的系统属性就可以达到目的。修改系统属性的方式用两种: 第一、通过openfire 后台管理系统进行修改;如下图:

但是这种方式工作量大,容易漏掉而造成出错。
第二、直接通过openfire 的数据库表进行修改。
Openfire 系统属性对应的表是:OFPROPERTY ,初始化后他的内容如下图所示:

首先,将该表清空,在根据openfire 所支持的属性,用自己的脚本将其所需的数据填上,具体脚本如下:
--设置管理员账号
insert into OFPROPERTY (NAME, PROPVALUE)
values ('admin.authorizedJIDs', 'admin@openfire');
--这是设置使用自定义的数据源
insert into OFPROPERTY (NAME, PROPVALUE)
,values ('provider.auth.className', 'org.jivesoftware.openfire.auth.JDBCAuthProvider');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('provider.user.className', 'org.jivesoftware.openfire.user.JDBCUserProvider');
--设置JDBC 连接方式
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcProvider.connectionString', 'jdbc:oracle:thin:jyzs/jyzs@127.0.0.1:1521:ORCL'); insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcProvider.driver', 'oracle.jdbc.driver.OracleDriver');
--自定义用户认证
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcAuthProvider.passwordType', 'plain');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcAuthProvider.useConnectionProvider', 'true');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.loadUserSQL', 'select username,email from MA_OFUSER WHERE username=?');
--自定义用户管理和openfire 需要的属性配置,就不具体解释了。
insert into OFPROPERTY (NAME, PROPVALUE)
values ('cache.KrakenRegistrationCache.maxLifetime', '-1');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('cache.KrakenRegistrationCache.min', '-1');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('cache.KrakenRegistrationCache.size', '-1');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('cache.KrakenRegistrationCache.type', 'optimistic');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('cache.KrakenSessionLocationCache.maxLifetime', '-1');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('cache.KrakenSessionLocationCache.min', '-1');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('cache.KrakenSessionLocationCache.size', '-1');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('cache.KrakenSessionLocationCache.type', 'optimistic');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('fastpath.database.setup', 'true');
,insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcAuthProvider.passwordSQL', 'select password from MA_OFUSER t where username = ?');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.allUsersSQL', 'select username from MA_OFUSER');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.emailField', 'email');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.nameField', 'username');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.searchSQL', 'select name from MA_OFUSER t where name=?');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.useConnectionProvider', 'true');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.userCountSQL', 'SELECT COUNT(*) FROM MA_OFUSER');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('jdbcUserProvider.usernameField', 'username');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('locale.timeZone', 'Asia/Taipei');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('mediaproxy.echoPort', '10020');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('mediaproxy.enabled', 'true');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('mediaproxy.idleTimeout', '60000');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('mediaproxy.lifetime', '9000');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('mediaproxy.portMax', '20000');
,insert into OFPROPERTY (NAME, PROPVALUE)
values ('mediaproxy.portMin', '10000');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('passwordKey', '3egFysglKVQGojh');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('plugin.userservice.secret', '0ac30Etu');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('provider.admin.className', 'org.jivesoftware.openfire.admin.DefaultAdminProvider');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('provider.group.className', 'org.jivesoftware.openfire.group.DefaultGroupProvider');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('provider.lockout.className', 'org.jivesoftware.openfire.lockout.DefaultLockOutProvider');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('provider.securityAudit.className', 'org.jivesoftware.openfire.security.DefaultSecurityAuditProvider');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('provider.vcard.className', 'org.jivesoftware.openfire.vcard.DefaultVCardProvider');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('update.lastCheck', '1347095314779');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('xmpp.auth.anonymous', 'true');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('xmpp.auth.sharedSecretEnabled', 'true');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('xmpp.domain', 'openfire');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('xmpp.session.conflict-limit', '0');
insert into OFPROPERTY (NAME, PROPVALUE)
values ('xmpp.socket.ssl.active', 'true');
,这里只用到了部分验证和用户管理相关的配置,更多的属性配置需要查看源码来获取,就不一一介绍了,这些配置完成后,记得在你自定义用户表中长如一条用户名为“admin ”的用户,否则后台管理以后就登录不进去了,接下来重启openfire 服务器,就可以使用自定义的用户表了,至此,自定义用户表完成。