openfire整合
http://tech.49jie.com/?p=1377
openfire\documentation下的文档有比较详细的信息
如果手动一步步设置
删除默认,
首先停止正常运行的Openfire服务器
默认的库ofProperty的如下记录删除
provider.auth.classname
provider.user.classname
provider.group.classname
建立一个第三方的表
CREATE TABLE myUser (
username NVARCHAR(64) NOT NULL,
plainPassword NVARCHAR(32),
encryptedPassword NVARCHAR(255),
name NVARCHAR(100),
email VARCHAR(100),
creationDate CHAR(15) NOT NULL,
modificationDate CHAR(15) NOT NULL,
CONSTRAINT ofUser_pk PRIMARY KEY (username)
);
CREATE INDEX ofUser_cDate_idx ON myUser (creationDate ASC);
CREATE TABLE myGroupUser (
groupName NVARCHAR(50) NOT NULL,
username NVARCHAR(100) NOT NULL,
administrator INTEGER NOT NULL,
CONSTRAINT ofGroupUser_pk PRIMARY KEY (groupName, username, administrator)
);
CREATE TABLE myGroup (
groupName NVARCHAR(50) NOT NULL,
description NVARCHAR(255),
CONSTRAINT ofGroup_pk PRIMARY KEY (groupName)
);
密码加密方式:
plain md5 sha1 sha256 sha512
密码采用明文:
<passwordSQL>SELECT plainPassword FROM myUser WHERE username=?</passwordSQL>
<passwordType>palin</passwordType>
密码采用HASH:
<passwordSQL>SELECT encryptedPassword FROM myUser WHERE username=?</passwordSQL>
<passwordType>sha256</passwordType>
如下是一个myUser 中admin数据[myUser 插入admin/**数据,必须有一个,否则再次启动时使用这个验证时就没法登录]
admin | admin | 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 | admin | Admin@demo.com | 2011-1-1 | 2011-1-1 |
配置文件
openfire.xml 加入如下内容
<!– Use Custome Database for user/group
openfire_src/documentation/docs :: db-integration-guide.html database.html database-guide.html
–>
<jdbcProvider>
<!–
<driver>com.mysql.jdbc.Driver</driver>
<connectionString>jdbc:mysql://localhost:3306/of?user=root&password=</connectionString>
–>
<![CDATA[ SQL SERVER驱动 jtds.sourceforge.net/faq.html ]]>
<driver>net.sourceforge.jtds.jdbc.Driver</driver>
<connectionString>jdbc:jtds:sqlserver://localhost/cust;appName=cust;user=of;password=of</connectionString>
</jdbcProvider>
<admin/>
<provider>
<auth>
<className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>
</auth>
<user>
<className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
</user>
<group>
<className>org.jivesoftware.openfire.group.JDBCGroupProvider</className>
</group>
</provider>
<jdbcAuthProvider>
<passwordSQL>SELECT plainPassword FROM myUser WHERE username=?</passwordSQL>
<passwordType>palin</passwordType>
</jdbcAuthProvider>
<jdbcUserProvider>
<loadUserSQL>SELECT name,email FROM myUser WHERE username=?</loadUserSQL>
<userCountSQL>SELECT COUNT(*) FROM myUser</userCountSQL>
<allUsersSQL>SELECT username FROM myUser</allUsersSQL>
<searchSQL>SELECT username FROM myUser WHERE</searchSQL>
<usernameField>username</usernameField>
<nameField>name</nameField>
<emailField>email</emailField>
</jdbcUserProvider>
<jdbcGroupProvider>
<groupCountSQL>SELECT count(*) FROM myGroup</groupCountSQL>
<allGroupsSQL>SELECT groupName FROM myGroup</allGroupsSQL>
<descriptionSQL>SELECT groupDescription FROM myGroup WHERE groupName=?</descriptionSQL>
<userGroupsSQL>SELECT groupName FROM myGroupUser WHERE username=?</userGroupsSQL>
<loadMembersSQL>SELECT username FROM myGroupUser WHERE groupName=? AND isAdmin=’N'</loadMembersSQL>
<loadAdminsSQL>SELECT username FROM myGroupUser WHERE groupName=? AND isAdmin=’Y'</loadAdminsSQL>
</jdbcGroupProvider>
启动
再次启动后,使用admin可以登录进去
默认的数据库的[ofProperty]内容从配置文件导入了,openfire.xml恢复原来的形式,查看ofProperty
name | propValue |
jdbcAuthProvider.passwordSQL | SELECT plainPassword FROM myUser WHERE username=? |
jdbcAuthProvider.passwordType | plain |
jdbcGroupProvider.allGroupsSQL | SELECT groupName FROM myGroup |
jdbcGroupProvider.descriptionSQL | SELECT groupDescription FROM myGroup WHERE groupName=? |
jdbcGroupProvider.groupCountSQL | SELECT count(*) FROM myGroup |
jdbcGroupProvider.loadAdminsSQL | SELECT username FROM myGroupUser WHERE groupName=? AND isAdmin=’Y’ |
jdbcGroupProvider.loadMembersSQL | SELECT username FROM myGroupUser WHERE groupName=? AND isAdmin=’N’ |
jdbcGroupProvider.userGroupsSQL | SELECT groupName FROM myGroupUser WHERE username=? |
jdbcProvider.connectionString | jdbc:jtds:sqlserver://localhost/cust;appName=cust;user=of;password=of |
jdbcProvider.driver | net.sourceforge.jtds.jdbc.Driver |
jdbcUserProvider.allUsersSQL | SELECT username FROM myUser |
jdbcUserProvider.emailField | |
jdbcUserProvider.loadUserSQL | SELECT name,email FROM myUser WHERE username=? |
jdbcUserProvider.nameField | name |
jdbcUserProvider.searchSQL | SELECT username FROM myUser WHERE |
jdbcUserProvider.userCountSQL | SELECT COUNT(*) FROM myUser |
jdbcUserProvider.usernameField | username |
provider.auth.className | org.jivesoftware.openfire.auth.JDBCAuthProvider |
provider.group.className | org.jivesoftware.openfire.group.JDBCGroupProvider |
provider.user.className | org.jivesoftware.openfire.user.JDBCUserProvider |
openfire整合相关推荐
- 即时聊天IM之二 openfire 整合现有系统用户
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com 综述: ...
- Openfire:安装指南
http://wiki.jabbercn.org/Openfire:%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97 解决openfire中发送某些特殊字符会断开xmpp连接的 ...
- java xmpp 框架_即时聊天IM之三 XMPP协议客户端库的和Android端框架概述
合肥程序员群:49313181. 合肥实名程序员群:128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojit@qq.com smack ...
- Openfire XMPP Smack RTC IM 即时通讯 聊天 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- openfire安装配置完全教程
Java领域的IM解决方案 Java领域的即时通信的解决方案可以考虑openfire+spark+smack. Openfire是基于Jabber协议(XMPP)实现的即时通信服务器端,最新版本是3. ...
- 使用django的用户帐号登录openfire
openfire是一个基于XMPP协议开源的及时通信服务器系统.利用它再加上同样开源的spark,可以轻松的为你的网站用户提供一个类似QQ这样的及时通讯软件,来扩展网站服务,增加用户黏度.openfi ...
- 基于openfire+smack的Android、消息推送服务
前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使 ...
- 基于 OpenFire 的TVBox管理平台开发笔记
目录 一.開發環境設置.... 3 1.1 JDK 安裝.... 3 1.2 MySql Server安裝.... 4 1.3 OpenFire安裝.... 6 1.4 Openfire Admin ...
- Android之基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]
http://blog.csdn.net/shimiso/article/details/8156439 前面几篇给大家系统讲解的有关xmpp openfire smack asmack相关的技术和使 ...
最新文章
- 现在的学生太强了,徒手撸了一个小米商城项目(附源码)!
- 华为服务器怎么格式化系统,如何格式化服务器
- 计算机网络设置中如何删除家庭组,【求助】Windows无法从该家庭组中删除你的计算机...
- LeetCode--34.在排序数组中查找元素第一个和最后一个位置(二分法)
- 用qpst修复手机服务器禁用,QPST工具包没有qfil怎么办?
- 基于Cocos2d-x开发guardCarrot--1 《保卫萝卜》简介
- 拓端tecdat|R语言基于ARMA-GARCH-VaR模型拟合和预测实证研究分析案例
- 同步异步线程进程的一些思考
- 软件工程-软件测试和系统运维
- work_study_plan
- Linux的常用命令思维导图
- midi键盘接电脑实现电子琴功能
- 在Swagger中请求API返回400BadRequest
- 2805076 /system/WTD/android.fg_blocked_67fc4997-ims导致binder耗尽
- 【bug】联想小新出现问题,你的PIN不可用。
- Rextrofit中网络请求空字段传递或过滤
- CE认证,CE-LVD标准办理流程,亚马逊欧洲站
- 自用吉他+乐理tips
- matlab画三维实心圆柱体,怎样用matlab画水平实心圆柱体,已知圆柱体的半径和高度(悬? 爱问知识人...
- 荣耀畅玩7x(BND-TL10移动版)刷LineageOS 19 GSI