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 服务器,就可以使用自定义的用户表了,至此,自定义用户表完成。

标签: