openfire服務(wù)器部署
Openfire 服務(wù)器部署以及自定義用戶表格說明 安裝下載openfire 服務(wù)器,官網(wǎng)地址:官網(wǎng)地址http://www.igniterealtime.org/projects/openfire/
Openfire 服務(wù)器部署以及自定義用戶表格說明 安裝
下載openfire 服務(wù)器,官網(wǎng)地址:官網(wǎng)地址http://www.igniterealtime.org/projects/openfire/。目前openfire 服務(wù)器版本已經(jīng)升級到3.8.1版本了,跟根據(jù)不同操作系統(tǒng)選擇不同的下載版本。如下圖:

下載完成雙擊可運(yùn)行的openfire_3_8_1.exe即可運(yùn)行安裝,如下圖:

一路點(diǎn)擊“下一步”,即可完成安裝這樣就可以運(yùn)行了。如下圖:
,
至此,我們的openfire 服務(wù)就安裝部署完成了,但是它還不可以直接使用,必須經(jīng)過相關(guān)參數(shù)的配置。
參數(shù)配置
接上圖點(diǎn)擊“完成”,服務(wù)器開始運(yùn)行,如下圖:

此時(shí),我們打開瀏覽器在地址欄中輸入url :http://127.0.0.1:9090/setup/index.jsp,即出現(xiàn)openfire 配置頁面首頁。如下圖:
,
首先是語言設(shè)置,更具需要選擇自己熟悉的語言,再次我就選擇“中文”,點(diǎn)擊“繼續(xù)”進(jìn)行下一步配置。如下圖:

這是服務(wù)器的訪問設(shè)置,“域”就是域名的意思,設(shè)置你以后訪問openfire 服務(wù)器是的域名(注意:這個域名的配置和DNS 服務(wù)有關(guān)系,若沒有DNS 服務(wù)器,通過此域名是不可以訪問openfire 服務(wù)器的。),它默認(rèn)是你的計(jì)算機(jī)名。它默認(rèn)的后臺管理端口是9090,也可以自行修改,但是不可與其他程序所用端口沖突,點(diǎn)擊“繼續(xù)”,進(jìn)行下一步配置。如下圖:
,
這里是數(shù)據(jù)庫配置,可根據(jù)具體需要選擇不同選項(xiàng),在此我們選擇第一項(xiàng)“標(biāo)準(zhǔn)數(shù)據(jù)庫連接”,看它的解釋就可以明白,它使用外部數(shù)據(jù)庫并且使用openfire 自己的機(jī)制來管理數(shù)據(jù)庫。點(diǎn)擊“繼續(xù)”進(jìn)行下一步配置。如圖:

這是數(shù)據(jù)庫連接設(shè)置,“數(shù)據(jù)庫驅(qū)動選項(xiàng)”是用來選則你需要連接的數(shù)據(jù)庫類型的,openfire 已經(jīng)集成目前主要流行的數(shù)據(jù)庫類型,在此我已orcle 為例。如下圖:

注意:“jdbc 驅(qū)動類”和“數(shù)據(jù)庫URL ”不能寫錯,由于openfire 服務(wù)器是純java 編寫,目前數(shù)據(jù)庫驅(qū)動只支持java 的JDBC連接,所以首先要把java的jdbc驅(qū)動jar包放在openfire安裝目錄的lib文件夾下,并重啟服務(wù)器讓其生效。否則就會報(bào)錯,如下圖:

正確放置jar包并重啟后是這樣的,如下圖:

接下來,我們選擇第一項(xiàng)進(jìn)行初始化數(shù)據(jù)庫,這個過程是自動完成的,會讓你等待一段時(shí)間。點(diǎn)擊“繼續(xù)”后是設(shè)置后臺管理員賬戶,根據(jù)自己的需求設(shè)置適當(dāng)?shù)挠脩裘艽a用來做后臺管理是登陸,它的默認(rèn)管理員名稱是admin,密碼自己設(shè)置。如下圖:

至此,openfire服務(wù)的配置就完成了,數(shù)據(jù)庫里面已自動初始化了很多openfire 的表格。如下圖:


你可以用剛才設(shè)置密碼登錄到后臺看一看了。
,自定義用戶表格
Openfire 服務(wù)器自己的表格名稱叫做OFUSER ,它的結(jié)構(gòu)如下圖:

如果把openfire 集成到其他的應(yīng)用中,直接使用openfire 自己的用戶表就很不方便了。解決辦法是我們通過修改openfire 的系統(tǒng)屬性就可以達(dá)到目的。修改系統(tǒng)屬性的方式用兩種: 第一、通過openfire 后臺管理系統(tǒng)進(jìn)行修改;如下圖:

但是這種方式工作量大,容易漏掉而造成出錯。
第二、直接通過openfire 的數(shù)據(jù)庫表進(jìn)行修改。
Openfire 系統(tǒng)屬性對應(yīng)的表是:OFPROPERTY ,初始化后他的內(nèi)容如下圖所示:

首先,將該表清空,在根據(jù)openfire 所支持的屬性,用自己的腳本將其所需的數(shù)據(jù)填上,具體腳本如下:
--設(shè)置管理員賬號
insert into OFPROPERTY (NAME, PROPVALUE)
values ('admin.authorizedJIDs', 'admin@openfire');
--這是設(shè)置使用自定義的數(shù)據(jù)源
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');
--設(shè)置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');
--自定義用戶認(rèn)證
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');
,這里只用到了部分驗(yàn)證和用戶管理相關(guān)的配置,更多的屬性配置需要查看源碼來獲取,就不一一介紹了,這些配置完成后,記得在你自定義用戶表中長如一條用戶名為“admin ”的用戶,否則后臺管理以后就登錄不進(jìn)去了,接下來重啟openfire 服務(wù)器,就可以使用自定義的用戶表了,至此,自定義用戶表完成。