Openfireは既存のユーザーシステムに統合されます。

7447 ワード

OpenfireはJDBCのユーザ統合方案を提供しています。この方式を使って既存のシステムユーザ情報を統合できます。
すべての配置情報はOpenfireのコンソールで構成されていますが、パンティプログラマとしては、直接にsqlで構成を修正することに慣れています。
 
修正した設定情報は以下の通りです。
delete from ofProperty;
Insert into ofProperty (name,propValue) values ('adminConsole.port','9090');
Insert into ofProperty (name,propValue) values ('adminConsole.securePort','9091');
Insert into ofProperty (name,propValue) values ('connectionProvider.className','org.jivesoftware.database.DefaultConnectionProvider');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.connectionTimeout','1.0');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.driver','com.mysql.jdbc.Driver');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.maxConnections','25');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.minConnections','5');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.password','cb0f3ccb874f50cbc9967bb547ba7911458731ad8aaa06b3');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.serverURL','jdbc:mysql://10.1.19.244:3306/openfire5?rewriteBatchedStatements=true');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.testAfterUse','false');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.testBeforeUse','false');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.testSQL','select 1');
Insert into ofProperty (name,propValue) values ('database.defaultProvider.username','b5f168b82d709ae7dc49db3df43857b75f5b577c4a446fbb6813eb2da8e1de37');
Insert into ofProperty (name,propValue) values ('locale','en');
Insert into ofProperty (name,propValue) values ('passwordKey','2H98aR1Mr4Bvs4y');
Insert into ofProperty (name,propValue) values ('provider.admin.className','org.jivesoftware.openfire.admin.DefaultAdminProvider');
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 ('setup','true');
Insert into ofProperty (name,propValue) values ('update.lastCheck','1450424871909');
Insert into ofProperty (name,propValue) values ('xmpp.auth.anonymous','true');
Insert into ofProperty (name,propValue) values ('xmpp.domain','openfire03');
Insert into ofProperty (name,propValue) values ('xmpp.session.conflict-limit','0');
Insert into ofProperty (name,propValue) values ('xmpp.socket.ssl.active','true');


--        
--    
Insert into ofProperty (name,propValue) values ('jdbcAuthProvider.passwordSQL','select pwd from bs_mbopt where userid=?');
--      
Insert into ofProperty (name,propValue) values ('jdbcAuthProvider.passwordType','md5 ');
--        
Insert into ofProperty (name,propValue) values ('jdbcProvider.connectionString','jdbc:oracle:thin:@10.67.2.6:1521/dzsw');
--     
Insert into ofProperty (name,propValue) values ('jdbcProvider.driver','oracle.jdbc.driver.OracleDriver');
--    
Insert into ofProperty (name,propValue) values ('jdbcUserProvider.allUsersSQL','select userid from bs_mbopt');
--email  
Insert into ofProperty (name,propValue) values ('jdbcUserProvider.emailField','email');
--      
Insert into ofProperty (name,propValue) values ('jdbcUserProvider.loadUserSQL','select username,email from bs_mbopt where userid=?');
--     
Insert into ofProperty (name,propValue) values ('jdbcUserProvider.nameField','username');
--    
Insert into ofProperty (name,propValue) values ('jdbcUserProvider.searchSQL','select userid from bs_mbopt where ');
--      
Insert into ofProperty (name,propValue) values ('jdbcUserProvider.userCountSQL','select count(1) from bs_mbopt');
--  id
Insert into ofProperty (name,propValue) values ('jdbcUserProvider.usernameField','userid');
--    
Insert into ofProperty (name,propValue) values ('provider.auth.className','com.jl.openfire.plugin.usermanager.JDBCAuthProvider');
--      
Insert into ofProperty (name,propValue) values ('provider.group.className','com.jl.openfire.plugin.usermanager.JDBCGroupProvider');
--      
Insert into ofProperty (name,propValue) values ('provider.user.className','com.jl.openfire.plugin.usermanager.JDBCUserProvider');
--      ,     jdbc      
Insert into ofProperty (name,propValue) values ('jdbcAuthProvider.jdbcPassword','fsbsdb_1');
Insert into ofProperty (name,propValue) values ('jdbcAuthProvider.jdbcUserName','fsbsdb_1');

--       
Insert into ofProperty (name,propValue) values ('jdbcGroupProvider.allGroupsSQL','select nkname from bs_menber');
--       
Insert into ofProperty (name,propValue) values ('jdbcGroupProvider.descriptionSQL','select Mbname from bs_menber where nkname=?');
--     
Insert into ofProperty (name,propValue) values ('jdbcGroupProvider.groupCountSQL','select count(1) from bs_menber');
--         
Insert into ofProperty (name,propValue) values ('jdbcGroupProvider.loadAdminsSQL','select opt.userid from bs_mbopt opt inner join bs_menber mb on opt.hydm = mb.hydm where mb.nkname=? and opt.isadmin = 0');
--          
Insert into ofProperty (name,propValue) values ('jdbcGroupProvider.loadMembersSQL','select opt.userid from bs_mbopt opt inner join bs_menber mb on opt.hydm = mb.hydm where mb.nkname=? and opt.isadmin = 1');
--             
Insert into ofProperty (name,propValue) values ('jdbcGroupProvider.userGroupsSQL','select mb.nkname from bs_mbopt opt inner join bs_menber mb on opt.hydm = mb.hydm where opt.userid=?');
 
 
管理者を変更
Insert into ofProperty (name,propValue) values ('admin.authorizedJIDs','guochen@domain');
 
 以上の配置を完成した後に1つのとても深刻な問題を発見して、登録は成功していませんでした!
比較してみると、既存のシステムの暗号化方式はMD 5であり、md 5の暗号化にはいくつかのシードが与えられています。Openfireのソースコードを見ましたが、配置によってこのように検証できる方法は見つけられませんでした。仕方がないです。JDBCAuthProviderを実現します。Openfireはソースコードを修正することを提案しません。プラグインを使ってユーザー定義の業務需要を実現することを提唱します。だから私もプラグインを通して実現します。開発されたjarを含む:JDBCAuthProvider、JDBCUserProvider、JDBCGroupProviderをopenfireサーバにアップロードする;
サービスを再起動し、Sparkでログインしました。