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与现有的用户管理系统进行整合,以便利用已有的用户数据,如LDAP(轻量级目录访问协议)或数据库中的用户信息。本文将详细介绍如何将Openfire与现有的用户资源进行整合,并扩展其...
标题中的“openfire扩展整合现有系统用户”是指在Openfire这款开源即时通讯服务器上,将已有的用户系统(如企业内部的LDAP、AD等)与Openfire进行集成,实现用户身份验证和管理的一体化。Openfire是一款基于Java开发...
- Openfire还支持与外部系统集成,如LDAP身份验证、数据库存储用户数据等。 3. **Android客户端开发** - 在Android上实现XMPP聊天客户端,需要一个兼容Android的XMPP库。在这种情况下,我们使用了**ASMACK**。 -...
Openfire是一款XMPP(Extensible Messaging and Presence Protocol)服务器,它支持实时通信、群聊、文件传输、用户状态管理等基本IM功能。XMPP是一种基于XML的开放标准协议,被广泛应用于聊天软件和企业协作系统。 ...
3. **配置文件**:包括Openfire服务器的配置信息,可能还有数据库连接参数等。 4. **资源文件**:如图片、图标和其他静态内容,用于增强用户体验。 **集成过程:** 1. **安装和配置Openfire**:首先,需要在服务器...
Openfire还支持与其他XMPP服务器的互操作性,方便整合现有的IM系统。 此外,Openfire提供了丰富的API和插件系统,允许开发人员自定义功能,如监控、审计、集成第三方应用等。确保定期更新Openfire至最新版本,以...
2. **数据库连接驱动**:Openfire支持多种数据库,如MySQL、PostgreSQL等,对应的数据库连接驱动jar包是必须的,用于建立和管理数据库连接。 3. **认证与授权库**:Openfire支持LDAP、JDBC等多种认证机制,对应的...
Openfire是一款开源、基于XMPP协议的即时通讯服务器,它允许用户通过互联网进行实时通信。本文将围绕"openfire_3_10_2.tar.gz"这一压缩包文件,详细讲解如何使用Openfire搭建高效、安全的在线聊天平台,并结合Red5和...
【标题】"精典源码之AdXmpp(Openfire+asmack+spark)" 提供的是一个关于XMPP协议实现的开源项目,其中涉及到的主要组件包括Openfire服务器、asmack库以及Spark客户端。这个压缩包文件是对于学习和研究XMPP通信协议...
1. **Openfire架构**:Openfire采用XMPP(Extensible Messaging and Presence Protocol)协议,这是一个强大的、灵活的、基于XML的即时通讯协议。Openfire服务器处理客户端之间的消息传递、用户在线状态管理以及群组...
这些jar包可能包含了Openfire运行和构建过程中的依赖,例如数据库连接驱动、XMPP协议处理、加密算法支持等。由于官方提供的jar包不全,开发者需要自行寻找并添加这些缺失的依赖,以确保项目的顺利进行。 Java的jar...
AdXmpp项目是针对这一需求的一个开源解决方案,它整合了Openfire服务器、asmack库和spark客户端,构建了一个高效且可靠的XMPP(Extensible Messaging and Presence Protocol)通信框架。下面我们将详细探讨这些组件...
Smack库是Openfire开发的核心组件之一,它提供了丰富的API,允许开发者轻松地创建XMPP客户端或服务器端程序。Smack 4.2.2版本可能引入了新的特性、修复了已知问题,以提高性能和兼容性。例如,它可能包含了更安全的...
Openfire 还允许你自定义集成,比如与你现有的用户系统整合,确保用户认证的一致性。此外,Openfire 提供的 UserService 接口详细说明可以帮助开发者更好地理解和利用用户管理功能。 至于 Spark,这是一个与 ...
2. **认证与授权**:Openfire支持多种身份验证机制,如内置数据库、LDAP、Active Directory等,确保用户安全登录。 3. **多用户聊天(MUC)**:Openfire提供了创建和管理群聊的功能,用户可以加入或创建聊天室进行...
OpenfireChatClient是一个基于XMPP(Extensible Messaging and Presence Protocol)协议的即时通讯客户端,它整合了Smack库和Spark客户端,为用户提供了一个功能丰富的通信平台。在这个系统中,Smack作为底层的XMPP...
2. 系统分析:基于需求,选择合适的开源组件,如Java作为开发语言,Smack API作为XMPP协议的Java库,Openfire作为服务器,MySQL作为后台数据库。 3. 详细设计:设计系统的架构,包括模块划分、接口定义、数据结构等...
在整合AndroidPN服务器到现有项目时,需要考虑与项目本身Spring环境的整合,有时候需要修改源代码以适应项目环境。由于AndroidPN服务器对jetty的使用是绑定的,若不使用jetty,也需要对源代码进行改造。开发者在使用...
这意味着Openfire的开发者可能已经配置了Coherence来优化其数据库交互,例如缓存用户会话信息、聊天记录或者其他重要的通信元数据。 总的来说,这三个JAR文件在Openfire中扮演的角色是提供一个强大的分布式数据管理...
Fastpath-Webchat与openfire的集成,意味着它也支持XMPP协议,能够实现用户间的实时文本、语音甚至视频交流。 4. **编译打包过程**:2017年5月4日编译打包,意味着在这个日期前,开发人员完成了代码编写、测试,并...