公司oa系統與公司openfire 使用者不同,現需要使用oa系統使用者來登入 spark。
由於公司組織架構有多層級,而openfire中多層級的組織架構 是用 :: 分隔的,
如: 公司::部門一::部門一下一
公司::部門一::部門一下二
公司::部門二::部門二下一
公司層次可以為多個公司,就集團模式
所以暫時不整合部門分組,只整合使用者
本來打算直接將使用者資訊匯入openfire使用者表中,可是兩邊使用的加密方式不同。
openfire使用的是org.jivesoftware.util.blowfish。下面是解密
public string getencrypwd(string noencrypwd) */
blowfish blowfish = new blowfish(passwordkey); //根據加密key初始化
passwordkey = blowfish.encryptstring(noencrypwd); //加密
return resultpwd; //返回加密後的結果
}
我們系統使用的是sha-256加密碼 再加上base64
public static synchronized string encryptsha256(string inputstr)
catch (exception e)
return null;
}
沒法解密。。
所以導過去也沒用
就使用openfire的擴充套件。
進入openfire管理控制台-伺服器-服務管理器-系統屬性
可以發現如下配置
provider.auth.classname org.jivesoftware.openfire.auth.defaultauthprovider *使用者驗證provider.group.classname org.jivesoftware.openfire.group.defaultgroupprovider *獲取組相關資料
provider.user.classname org.jivesoftware.openfire.user.defaultuserprovider *獲取使用者相關資料
這些provider是openfire預設自己管理使用者組
但同時openfire還提供了支援jdbc相關的provider,可以從其它的資料來源獲取使用者/組資料
將上面三個屬性分別修改為
org.jivesoftware.openfire.auth.jdbcauthprovider
org.jivesoftware.openfire.group.jdbcgroupprovider
org.jivesoftware.openfire.user.jdbcuserprovider
然後,需要配置一下資料來源,新增如下屬性:
jdbcprovider.driver *資料來源驅動
jdbcprovider.connectionstring *連線字串
對每乙個jdbc provider 需要配置相關的sql語句和屬性(在系統屬性裡新增)
jdbcauthprovider.passwordsql
*獲取使用者密碼的sql
*輸入引數:登入名
*輸出列:密碼
jdbcauthprovider.passwordtype
*密碼型別可以是:plain(文字),md5,sha1,sha256,sha512
jdbcuserprovider.alluserssql
*獲取所有使用者
*輸入引數:無
*輸出列:使用者的登入名
jdbcuserprovider.usercountsql
*獲取所有使用者數量
*輸入引數:無
*輸出列:使用者數量
jdbcuserprovider.loadusersql
*獲取使用者資訊
*輸入引數:使用者的登入名
*輸出列:姓名,email
jdbcuserprovider.emailfield *指定使用者email的列名如:email
jdbcuserprovider.namefield *指定使用者姓名的列名如:fullname (上面loadusersql查出來的fullname)
jdbcuserprovider.usernamefield *指定使用者登入名的列名如:username
最後 還需要配置新的管理員使用者
admin.authorizedjids *指定新資料來源中的管理員使用者注意是是完整jid(user@網域名稱) *例:[email protected]
配置好如上屬性 重啟openfire
使用admin.authorizedjids中的使用者名稱登入openfire管理控制台
如果配置成功,進入openfire管理控制台-使用者/組
就可以看到你資料來源中的使用者/組資訊了
同時可以使用spark登入進行測試
insert into `ofproperty` values ('admin.authorizedjids', 'admin@win-mas');
insert into `ofproperty` values ('jdbcauthprovider.passwordtype', 'sha256'); -- 新增
insert into `ofproperty` values ('jdbcprovider.connectionstring', 'jdbc:mysql://localhost:3306/oa2_ljt?user=root&password=123456'); -- 新增
insert into `ofproperty` values ('jdbcprovider.driver', 'com.mysql.jdbc.driver'); -- 新增
insert into `ofproperty` values ('jdbcuserprovider.emailfield', 'email'); -- 新增
insert into `ofproperty` values ('jdbcuserprovider.namefield', 'fullname'); -- 新增
insert into `ofproperty` values ('jdbcuserprovider.usernamefield', 'username'); -- 新增
insert into `ofproperty` values ('provider.auth.classname', 'org.jivesoftware.openfire.auth.jdbcauthprovider'); -- 修改
insert into `ofproperty` values ('provider.user.classname', 'org.jivesoftware.openfire.user.jdbcuserprovider'); -- 修改
openfire jdbcauthprovider中使用的sha256和我們系統中還不同,給openfire增加了個我上面使用的sha256加密方法,使用者整合成功
openfire3 6 2整合現有系統使用者
openfire3.6.2整合現有系統使用者 前面寫過一篇openfire整合自己使用者的文章,最近抽空,又開了一下新版本的openfire的功能增強 把原有系統進行了一下增強。整合使用者的配置的地方發生了改變 3.5是在openfire。xml檔案中新增配置。3.6 是在資料庫的ofpropert...
Openfire安裝整合使用者手冊
openfire安裝整合使用者手冊 冷志勇官網 安裝手冊 參考 我選擇第一種資料庫安裝 安裝spark 測試可以通訊 downloads index.jsp openfire 3.7.1 1.i386.rpm img wget rpm ivh openfire 3.7.1 1.i386.rpm 預設...
為現有 iOS專案整合 Flutter
flutter 0.5.1 xcode 9.4.1 flutter工程 flutter examples hello world 首先,在你的專案裡面拖入flutter.framework,這個庫是 flutter engine,承載了 dart執行時和繪圖引擎。flutter.framework和...