openfire服务器按默认配置成功,如果只是整合用户信息, 可以直接执行附件sql.
下面是详细的介绍:
进入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登录进行测试
分享到:
相关推荐
1. **Openfire与现有用户的整合** - **LDAP集成**:Openfire支持与LDAP服务器进行集成,如Active Directory或OpenLDAP。通过配置Openfire的服务器设置,可以连接到 LDAP 服务器并验证用户身份。这允许用户使用他们...
此外,它支持LDAP集成,便于与企业现有的用户认证系统对接。 **4. 聊天室与群组** Openfire允许创建公共或私有的聊天室,用户可以自由加入或邀请他人参与。群组功能使得消息广播和协作变得更加高效,可以设置群组...
5. **XMPP扩展**:Openfire允许开发者添加自定义的XMPP扩展,如OMEMO加密,这需要强大的加密库支持,Bouncy Castle能够满足这样的需求。 6. **兼容性与性能**:Bouncy Castle库在Java社区中享有良好的声誉,其高...
Openfire还支持与其他XMPP服务器的互操作性,方便整合现有的IM系统。 此外,Openfire提供了丰富的API和插件系统,允许开发人员自定义功能,如监控、审计、集成第三方应用等。确保定期更新Openfire至最新版本,以...
Openfire 还允许你自定义集成,比如与你现有的用户系统整合,确保用户认证的一致性。此外,Openfire 提供的 UserService 接口详细说明可以帮助开发者更好地理解和利用用户管理功能。 至于 Spark,这是一个与 ...
3. **二次开发**:Openfire支持插件扩展,开发者可以通过编写Java插件来添加新功能或修改现有行为。二次开发可能包括创建新的认证机制、实现自定义数据存储、整合其他系统或服务等。 4. **文件结构**:在解压...
- 当需要将Openfire与现有系统集成时,由于Openfire对用户数据的加密方式可能与你的系统不同,官方提供了一个名为User Service的插件。这个插件允许开发者通过HTTP请求来添加、编辑或删除Openfire用户。 - User ...
这款工具在企业环境中特别有用,因为它可以轻松地整合到现有的工作流程中,提升团队协作效率。汉化版是针对中文用户的本地化版本,解决了语言障碍问题,使中国用户能更方便地使用其功能。 Sparkweb分为汉化版和英文...
使用XMPP可以让开发者构建可扩展、安全的聊天系统。在集成Jabber Messenger时,开发者需要了解基本的XMPP概念,如JID(Jabber ID)、XML流和Stanzas(消息结构)。 为了使用这个插件,首先,你需要确保你的服务器...