- 浏览: 515499 次
- 性别:
- 来自: 南京
最新评论
-
usenrong:
转载 http://www.ijiandao.com/safe ...
DDOS及CC攻击防护经验 -
usenrong:
/sbin/iptables -I INPUT -p tcp ...
CentOS_6.5配置iptables防火墙策略 -
usenrong:
http://maven.aliyun.com/nexus/
aliyun阿里云Maven仓库镜像地址——加速你的maven构建 -
buxin_2008:
qkjava 写道安装了 boot2dockerhttps:/ ...
Docker介绍以及其相关术语、底层原理和技术 -
usenrong:
1.查找文件find / -name filename.txt ...
Java 开发必会的 Linux 命令
openfire扩展小试 整合现有系统用户 注意:在集成成功后,使用的用户就是你集成系统的数据库,而不是你原来在openfire里配置的数据库了,原来的openfire数据库依然有有,只是用户表ofuser不不能用了,因为如果能用,那么用户账号就可能重复,因为不能两套用户表。 经测试,可以集成现有系统,例子如下: 我的IP为 192.168.1.102 ,使用的是mysql数据库 现有系统库为sns,其中有张user表,字段:id,email,password,name 为了集成,首先: 修改ofproperty表,将修改之后的内容如下(这里1就是管理员的名字) admin.authorizedJIDs 1@192.168.1.102 注:红色为修改的内容 重启openfire服务器即可. 以后登陆需要输入id,password.有人会问了,为什么用id而不用email呢? 这是因为email中带有符号,而在openfire中会用于记录服务器的域名。所以会有冲突。 况且,openfire作为IM集成到现有系统中时,走的登陆是隐式登陆,即嵌入到原有系统的登陆方式中。 对用户而言透明。 问题: 但是,需要解决的问题在客户端显示时,现有spark是显示的id,jwchat估计也是,需要修改一下,使其对用户而言只显示用户名!如果能够解决,那么对于现有系统而言,基本无任何改动。 现有系统库为myim,其中有张user表,字段:id,email,password,name,与上面不同的是id这里我设它不自动自增,name 即作用户显示名也作账号登陆使用(实际使用中要分开,这里只作个小测试),password为用户登陆密码。可以在openfire数据库时执行如下SQL语句来集成现有系统的用户表:
如果我想使用现有系统的用户/组(部门),而不想使用openfire再去管理一套用户/组,用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
jdbcAuthProvider.passwordSQL
*获取用户密码的SQL
*输入参数:登录名
*输入列:密码
*例:SELECT pwd FROM user WHERE name=?
jdbcAuthProvider.passwordType
*密码类型可以是:plain(文本),md5,sha1
*如果你的密码加密不为以上三种 就需要自己提供一个AuthProvider,在下一章会专门介绍
JDBCGroupProvider
jdbcGroupProvider.allGroupsSQL
*获取所有组的SQL
*输入参数:无
*输出列:组的KEY
*例:SELECT sn FROM department
jdbcGroupProvider.descriptionSQL
*获取组的名称(描述)
*输入参数:组记录的KEY
*输出列:组的名称(描述)
*例:SELECT name FROM department where sn=?
jdbcGroupProvider.groupCountSQL
*获取组的数量
*输入参数:组的KEY
*输出列:组的数量
*例:SELECT count(sn) FROM department
jdbcGroupProvider.loadAdminsSQL
*获取组的管理员
*输入参数:组记录的KEY
*输出列:组管理员的KEY
*例:SELECT admin FROM department where sn=?
jdbcGroupProvider.loadMembersSQL
*获取组的成员
*输入参数:组的KEY
*输出列:组成员的KEY(集合)
*例:SELECT usersn FROM department_user where departmentsn=?
jdbcGroupProvider.userGroupsSQL
*获取成员的组
*输入参数:成员的KEY
*输出列:成员所性组的KEY
*例:SELECT departmentsn FROM department_user where usersn=?
JDBCUserProvider
jdbcUserProvider.allUsersSQL
*获取所有用户
*输入参数:无
*输出列:用户的KEY
*例:SELECT sn from user
jdbcUserProvider.userCountSQL
*获取所有用户数量
*输入参数:无
*输出列:用户数量
*例:SELECT count(sn) from user
jdbcUserProvider.loadUserSQL
*获取用户信息
*输入参数:用户的KEY
*输出列:登录名,名称,email(至少应该这三列,下面要用到)
*例:SELECT loginname,name,email from user where sn =?
jdbcUserProvider.emailField
*指定用户email的列名如:email
jdbcUserProvider.nameField
*指定用户名称的列名如:name
jdbcUserProvider.usernameField
*指定用户登录名的列名如:loginname
最后 还需要配置新的管理员用户
admin.authorizedJIDs
*指定新数据源中的管理员用户注意是是完整JID(user@域名)
*例:admin@server.cn
配置好如上属性 重启openfire
使用admin.authorizedJIDs中的用户名登录openfire管理控制台
如果配置成功,进入openfire管理控制台-用户/组
就可以看到你数据源中的用户/组信息了
同时可以使用spark登录进行测试
此外,如果在调试过程中出现问题 无法登录openfire管理控制台
(这里需要注注意的是在属性amdin.authorizedJIDs的值如设置成,那么这里的abc就是openfire后台管理的管理员名,并且这个管理员的信息不是在我们原来的openfire指定的数据库里的管理员,而是在待集成系统的的数据库那里名为abc的管理员,当然我们也可以配置SQL来指定管理员从待集成信息的那个表时获取出来。)
可以直接修改openfire数据库中的 OFPROPERTY表
jdbcAuthProvider.passwordSQL select password from user where id=?
jdbcAuthProvider.passwordType plain
jdbcProvider.connectionString jdbc:mysql://localhost:3306/sns?user=root&password=123456
jdbcProvider.driver com.mysql.jdbc.Driver
jdbcUserProvider.allUsersSQL select id from user
jdbcUserProvider.emailField email
jdbcUserProvider.loadUserSQL select name,email from user where id=?
jdbcUserProvider.nameField name
jdbcUserProvider.userCountSQL select count(*) from user
jdbcUserProvider.usernameField name
passwordKey f46L75p2QsuKCQy
provider.admin.className org.jivesoftware.openfire.admin.DefaultAdminProvider
provider.auth.className org.jivesoftware.openfire.auth.JDBCAuthProvider
provider.group.className org.jivesoftware.openfire.group.DefaultGroupProvider
provider.lockout.className org.jivesoftware.openfire.lockout.DefaultLockOutProvider
provider.securityAudit.className org.jivesoftware.openfire.security.DefaultSecurityAuditProvider
provider.user.className org.jivesoftware.openfire.user.JDBCUserProvider
provider.vcard.className org.jivesoftware.openfire.vcard.DefaultVCardProvider
update.lastCheck 1262616901497
xmpp.auth.anonymous true
xmpp.domain 192.168.1.102
xmpp.session.conflict-limit 0
xmpp.socket.ssl.active true
insert into ofproperty( name, propValue) values( 'admin.authorizedJIDs' , 'admin@hshy-053-pc'); insert into ofproperty( name, propValue) values( 'jdbcAuthProvider.passwordSQL' , 'select password from tb_user where username=?'); insert into ofproperty( name, propValue) values( 'jdbcAuthProvider.passwordType' , 'md5'); insert into ofproperty( name, propValue) values( 'jdbcProvider.connectionString' , 'jdbc:mysql://192.168.12.7:3306/eisp?user=root&password=root'); insert into ofproperty( name, propValue) values( 'jdbcProvider.driver' , 'com.mysql.jdbc.Driver' ); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.allUsersSQL' , 'select username from tb_user' ); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.emailField' , 'email'); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.loadUserSQL' , 'select u.username,p.name,p.email from tb_user u left join tb_person p on u.id=p.userid where u.username=?'); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.nameField' , 'name'); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.userCountSQL' , 'select count(username) from tb_user'); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.usernameField' , 'username' ); UPDATE ofproperty SET propValue ='org.jivesoftware.openfire.auth.JDBCAuthProvider' WHERE NAME='provider.auth.className'; UPDATE ofproperty SET propValue='org.jivesoftware.openfire.user.JDBCUserProvider' WHERE NAME='provider.user.className';
发表评论
-
对Java意义重大的7个性能指标
2015-11-17 15:05 5017个最有影响的衡量标 ... -
使用四种框架分别实现1百万websocket常连接的服务器
2015-07-11 22:06 1503目录 [−] 服务器的参数调优 -
微观SOA:服务设计原则及其实践方式(上篇)
2015-06-05 08:46 846大量互联网公司都 ... -
分布式RPC框架
2015-05-25 20:25 1237分布式RPC框架:Polaris 在长期的业务发展过程中,对 ... -
关于Java集合
2015-04-22 16:59 711在尽可能短的篇幅里, ... -
微信卡券卡包支付及红包发放系统HTTPS双向认证
2015-03-11 17:18 2882现在邮件发出的文件有四个,分别是apiclient_ ... -
tomcat基于域名的多应用部署及共享jar资源
2015-02-13 15:21 1048最近帮公司开 ... -
Hibernate Search 的常用注解
2015-02-10 19:05 7131. @Indexed -> index 指定索引名 ... -
如何构建高性能服务端程序
2014-12-01 10:52 926接触过很多编程语言, ... -
如何构建高性能服务端程序
2014-12-01 10:52 2接触过很多编程语言, ... -
如何构建高性能服务端程序
2014-12-01 10:50 2接触过很多编程语言, ... -
如何构建高性能服务端程序
2014-12-01 10:47 2接触过很多编程语言, ... -
Java应用的负载均衡、集群、高可用(HA)解决方案
2014-11-24 16:47 32231、熟悉几个组件1.1、apache —— ... -
Criteria 和 DetachedCriteria的区别与使用
2014-08-26 20:14 887Criteria 和 DetachedCriteria ... -
IntelliJ IDEA常用 快捷键
2013-10-08 10:17 1458代码提示 KEYMAP->Main m ... -
Intellij IDEA快捷键及其使用技巧
2013-08-27 14:09 11681. IDEA内存优化 先看看你机器本身的配置而配置. \I ... -
CKFinder 2.3 for java 破解使用
2013-06-26 14:39 1878CKFinder 2.3整合 for java 破解篇ckf ... -
SSH网上商城 基于Struts2 Hibernate Spring J2EE框架结构的电子商务网站
2013-01-31 11:15 2952一个基于Struts2 Hibernate Spring框架 ... -
. System.exit(0)和System.exit(1) 和return 区别
2013-01-30 08:38 30261、System.exit(0)和System.exit(1 ... -
解决MySQL错误reading initial communication packet
2013-01-06 15:51 3725使用navicat远程访问VPS云主机 出现如题rea ...
相关推荐
标题中的“openfire扩展整合现有系统用户”是指在Openfire这款开源即时通讯服务器上,将已有的用户系统(如企业内部的LDAP、AD等)与Openfire进行集成,实现用户身份验证和管理的一体化。Openfire是一款基于Java开发...
1. **Openfire与现有用户的整合** - **LDAP集成**:Openfire支持与LDAP服务器进行集成,如Active Directory或OpenLDAP。通过配置Openfire的服务器设置,可以连接到 LDAP 服务器并验证用户身份。这允许用户使用他们...
openfire 用户整合,手把手交你实现。
在企业级即时通讯系统部署过程中,为了确保数据的一致性和提高用户体验,通常会遇到一个关键需求:将Openfire服务器与现有的用户数据库进行集成。这样的集成可以实现统一的用户认证管理、避免数据冗余,并能充分利用...
在本文中,我们将深入探讨OpenFire系统及其所有在线用户的管理。 首先,让我们理解"OpenFire所有在线用户"这个标题。这指的是OpenFire服务器上的功能,它能够追踪并显示当前处于在线状态的用户。通过服务器的插件...
openfire mac系统安装文件 Openfire (formerly Wildfire) is a cross-platform real-time collaboration server based on the XMPP (Jabber) protocol.
这是一个OpenFire集成Oracle数据库来集成现有系统中的用户管理时的ofproperty表信息
总之,"openfire插件,用户入群加web接口"涉及到的技术点包括Openfire插件开发、Web服务接口设计、Openfire API的使用以及系统安全性和集成测试。通过这样的实现,可以高效地自动化用户入群的过程,提高协作效率。
自己写的获取所有在线用户的openfire插件,直接上传到openfire服务器即可使用,访问路径为host:port/plugins/onlines/listall
openfire集成第三方系统配置,数据库配置方法
在Openfire中,实现用户接收消息的计数功能是提升通信效率和监控系统性能的重要一环。本文将深入探讨如何利用"openfire的用户接收消息计数器"这一工具来实现这一目标。 首先,我们要理解计数器的工作原理。计数器...
在IT领域,部署一个实时通信系统对于许多企业和项目来说至关重要,而Jwchat与Openfire的结合使用就提供了一个高效且可定制化的解决方案。本文将详细介绍Jwchat和Openfire的部署过程及其相关知识点。 首先,Jwchat是...
这对于想要学习即时通讯系统设计或希望改进现有通讯方案的人来说,具有极高的价值。 总的来说,Openfire 3.6.4源代码包是一个集即时通讯、服务器管理、源码学习于一身的宝贵资源。无论是企业用于构建内部沟通平台,...
"基于openfire服务器的IM系统源程序" 指的是一款即时通讯(IM)系统,它的核心是使用了openfire服务器作为后台服务。Openfire是一款开源、基于XMPP(Extensible Messaging and Presence Protocol)协议的即时通讯...
书中将详细讲解如何在各种操作系统(如Windows、Linux、Mac OS等)上安装OpenFire,并进行基本的设置,包括数据库连接、SSL证书配置、用户管理和权限控制等。此外,还会涉及与其他系统的集成,如LDAP目录服务的对接...
9. **API 接口**:对于开发者,Openfire提供了丰富的API,允许开发自定义的应用程序或集成到现有系统中。 10. **社区支持**:作为开源项目,Openfire有一个活跃的社区,用户可以在官方论坛上寻求帮助、报告问题或...
【即时通信开源】项目概述 即时通信(Instant Messaging, IM)是一...通过深入理解XMPP协议,熟悉Android客户端的开发要点,以及熟练掌握Openfire的配置和管理,能够进一步优化和定制化这个项目,满足特定的业务需求。
Openfire可以与其他业务系统集成,例如CRM、ERP等,实现即时消息通知、工作流协同等功能,提高企业的工作效率。 **10. 社区支持与更新** 作为开源项目,Openfire拥有活跃的开发者社区,不断发布新版本和修复漏洞。...
即时通信(Instant Messaging,IM)是一种在线实时交流技术,它允许用户通过互联网进行文本、...如果你想要构建一个自定义的即时通讯系统,或者希望将即时通讯功能整合到已有应用中,这些代码将为你提供宝贵的参考。