`

Openfire使用外部数据库详细教程

 
阅读更多

本文绝大部分内容均参照Openfire官方文档:Custom Database Integration Guide,地址如下:

http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/db-integration-guide.html

Openfire使用外部数据库只需要在openfire/src/con/openfire.xml配置文件中进行相应的配置,不需要手动编码。配置分为两个阶段:1、进行openfire.xml的配置;2、登录到web管理后台进行手动配置;

阶段一:进行Openfire.xml的配置

1、外部数据库集成配置

配置驱动和连接字符串:

<jive>
  ...
  <jdbcProvider>
    <driver>com.mysql.jdbc.Driver</driver>
    <connectionString>jdbc:mysql://localhost/dbname?user=username&amp;password=secret</connectionString>
  </jdbcProvider>
  ...
</jive>

 

<jive>
  ...
 <jdbcProvider>
    	<driver>com.mysql.jdbc.Driver</driver>
    	<connectionString>jdbc:mysql://localhost/openfirev1?username=root</connectionString>
 </jdbcProvider>
  ...
</jive>

 我的数据库名叫openfirev1,mysql的用户名是root,没有设密码所以密码不用写。

2、认证集成配置

认证配置需要配置以下标签:

  • provider.auth.className--设置为org.jivesoftware.openfire.auth.JDBCAuthProvider
  • jdbcAuthProvider.passwordSQL--该SQL语句用于查询一个用户密码。SQL语句必须包含一个‘?’,它在执行时将被动态地替换
  • jdbcAuthProvider.passwordType--密码的类型。可用的有:plain(不加密)、md5、sha1、sha256、sh512
<jive>
  ...
  <provider>
    <auth>
          <className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className> 
    </auth>
  </provider>
  <jdbcAuthProvider>
     <passwordSQL>SELECT password FROM user_account WHERE username=?</passwordSQL>
     <passwordType>plain</passwordType>
   </jdbcAuthProvider>
   ...
  </jive>

 

<jive>
  ...
  <provider>
    	<auth>
    		<className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>
    	</auth>
    </provider>
    <jdbAuthProvider>
    	<passwordSQL>SELECT password FROM ofuser WHERE username=?</passwordSQL>
    	<passwordType>plain</passwordType>
   ...
  </jive>

 3、用户集成配置

用户集成是可选的,Openfire可用从外部数据库载入用户。如果你想使用用户集成,则必须先进行认证集成配置(如配置2)。用户集成配置需配置已下标签:

  • provider.user.className--设为org.jivesoftware.openfire.user.JDBCUserProvider
  • jdbcUserProvider.loadUserSQL--该SQL语句用于载入给定用户名的姓名和邮件地址信息。该SQL语句应该包括一个‘?’,它在执行时将被动态地替换
  • jdbcUserProvider.userCountSQL--用于计算用户数
  • jdbcUserProvider.allUsersSQL--用于载入数据库中的所有用户
  • jdbcUserProvider.searchSQL--用于在数据库中搜索符合条件的用户,是不完整的SQL语句,缺少where后面的内容,它在执行时将被动态地补全,如果不填则不能进行搜索
  • usernameField--用户名字段,用于搜索
  • nameField--昵称字段,用于搜索
  • emailField--邮箱字段,用于搜索
<jive>
  ...
  <provider>
    <user>
   <className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
    </user>
  </provider>
  <jdbcAuthProvider>
     <passwordSQL>SELECT password FROM user_account WHERE username=?</passwordSQL>
     <passwordType>plain</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>
   ...
 </jive>
<jive>
  ...
     <provider>
    	<user>
    		<className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
    	</user>
    </provider>
    <jdbcUserProvoder>
    	<loadUserSQL>SELECT name,email FROM ofuser WHERE username=?</loadUserSQL>
    	<userCountSQL>SELECT COUNT(*) FROM ofuser</userCountSQL>
    	<allUserSQL>SELECT username FROM ofuser</allUserSQL>
    	<searchSQL>SELECT username FROM ofuser WHERE</searchSQL>
    	<usernameField>username</usernameField>
    	<nameField>name</nameField>
    	<emailField>email</emailField>
    </jdbcUserProvoder>
   ...
 </jive>

 4/openfire.xml文件配置完成!所有代码整合:

<jive>
    <adminConsole>
        <!-- Disable either port by setting the value to -1 -->
        <port>9090</port>
        <securePort>9091</securePort>
    </adminConsole>

    <locale>en</locale>

    <!-- Network settings. By default, Openfire will bind to all network interfaces.
      Alternatively, you can specify a specific network interfaces that the server
      will listen on. For example, 127.0.0.1. This setting is generally only useful
       on multi-homed servers. -->
    <jdbcProvider>
    	<driver>com.mysql.jdbc.Driver</driver>
    	<connectionString>jdbc:mysql://localhost/openfirev1?username=root</connectionString>
    </jdbcProvider>
    <provider>
    	<auth>  		<className>org.jivesoftware.openfire.auth.JDBCAuthProvider</className>
    	</auth>
    	<user> 		<className>org.jivesoftware.openfire.user.JDBCUserProvider</className>
    	</user>
    </provider>
    <jdbAuthProvider>
    	<passwordSQL>SELECT password FROM ofuser WHERE username=?</passwordSQL>
    	<passwordType>plain</passwordType>
    </jdbAuthProvider>
    <jdbcUserProvider>
    	<loadUserSQL>SELECT name,email FROM ofuser WHERE username=?</loadUserSQL>
    	<userCountSQL>SELECT COUNT(*) FROM ofuser</userCountSQL>
    	<allUserSQL>SELECT username FROM ofuser</allUserSQL>
    	<searchSQL>SELECT username FROM ofuser WHERE</searchSQL>
    	<usernameField>username</usernameField>
    	<nameField>name</nameField>
    	<emailField>email</emailField>
    </jdbcUserProvoder>
</jive>

 阶段二:登录http:127.0.0.1:9090进行后台管理的初始化设置。

首先在MySQL中建立数据库openfirev1。






此时,数据库中已经生成了所有表!


 

 


目前为止已经可以使用数据库中的用户了。现在我们测试一下~往数据库中的ofuser表中添加一条记录:用户名:tt,密码:tt,直接从数据库中添加和从控制台添加都可以。如下图就是从控制台添加:


然后从客户端spark登录:


登录成功!



 

 
 

 

 

 

 

 

  • 大小: 32.6 KB
  • 大小: 17.6 KB
  • 大小: 20.3 KB
  • 大小: 38.4 KB
  • 大小: 95.4 KB
  • 大小: 26.1 KB
  • 大小: 22.3 KB
  • 大小: 14.9 KB
  • 大小: 21.5 KB
  • 大小: 75.8 KB
  • 大小: 39.1 KB
分享到:
评论

相关推荐

    openfire 安装文件及详细安装教程

    总的来说,Openfire是一个强大且灵活的即时通讯解决方案,其详细的安装教程使得即使对技术不太熟悉的用户也能轻松上手。只需按照步骤进行,你就可以拥有一个属于自己的即时通讯服务器了。在实际使用过程中,如果遇到...

    openfire依赖外部Jar包.zip

    在Openfire中,Coherence可能被用来作为会话数据的高速缓存,或者用于优化数据库交互,提升服务响应速度。 接下来,coherence.jar是Coherence框架的主要实现包,包含了Coherence运行时的所有核心组件和服务。这个...

    Openfire安装部署

    在Web管理界面中,进入“系统设置”&gt;“存储”部分,选择“使用外部数据库”,然后填写数据库连接信息。 2. 安全配置:确保开启SSL/TLS加密,以保护通信安全。在“服务器设置”中,配置SSL端口和证书。如果需要,还...

    xmpp,openfire搭建ppt

    8. **优化与扩展**:你可以根据需求对Openfire进行定制,比如使用外部数据库(MySQL、PostgreSQL等)来存储用户数据,增加插件来实现更多功能,如文件传输、语音/视频通话等。 9. **安全性考虑**:为了保障用户隐私...

    Openfire数据结构详解

    在Openfire中,数据存储是通过数据库实现的,而本文将深入解析Openfire数据库中的关键数据结构,以便理解其工作原理和管理方式。 1. **ofGroup**:这是用户组的数据表,用于存储用户组的信息。主键是`groupName`,...

    openfire 安装包

    如果使用外部数据库,还需要备份数据库。在需要时,可以使用Openfire提供的工具进行恢复。 11. **性能优化**:根据服务器硬件资源和用户负载,可能需要调整Openfire的配置以优化性能,例如调整内存分配、并发连接数...

    openfire_3_10_2所有缺少的jar包整理

    首先,我们来看"openfire_3_10_2所有缺少的jar包"这个压缩文件,它包含了Openfire项目在Eclipse中运行所必需的外部依赖。这些JAR包通常包括了Openfire核心功能所需的第三方库,例如数据库连接、XML处理、网络通信等...

    openfire服务端实现

    - 设计数据存储方案,可以选择直接存储在Openfire内置的数据库(如HSQLDB或MySQL),或者使用外部存储如MongoDB或Elasticsearch。 - 实现插件逻辑,包括消息的抓取、解析、存储以及提供查询接口。 - 在Openfire...

    openfire_4_2_0.tar.gz

    为了使Openfire在系统启动时自动运行,你可以将其设置为系统服务,比如使用`systemd`,创建一个名为`openfire.service`的配置文件,并使用`systemctl enable openfire`使其开机启动。 7. **安全设置**:确保你已经...

    Jwchat+openfire部署

    - 安装过程中,按照提示配置数据库连接(可以选择内置的HSQLDB或连接到外部MySQL、PostgreSQL等)。 - 配置服务器端口,确保没有与其他服务冲突。 - 启动Openfire服务器,并通过Web管理界面进行基本设置,如管理...

    Openfire 3.4.3

    9. **故障恢复和备份**:Openfire支持数据库备份和恢复,有助于在系统出现故障时快速恢复服务。 10. **日志记录**:提供详细的日志记录功能,帮助管理员排查和解决系统问题。 11. **兼容性**:Openfire兼容多种...

    openfire开发文档.pdf

    首先,文档详细说明了进行Openfire开发所需的初始准备工作,包括安装Java开发工具包(JDK)、集成开发环境(Eclipse/MyEclipse)、数据库(Oracle 10gXE)以及Openfire服务器软件。在安装JDK时,文档提供了两种方法...

    Openfire_spark_安装手册

    - **脚本执行**:根据实际需求选择相应的数据库类型(如SQL Server 2005),并使用相应的数据库管理工具(如Management Studio)执行脚本。 ##### 2.2.3 数据库驱动jar包 - **放置位置**:将数据库驱动jar包(如...

    openfire_4_0_1

    - 安装过程中,可以选择创建数据库(默认为HSQLDB)或连接已有的数据库(如MySQL、PostgreSQL)。 - 完成安装后,通过浏览器访问`http://localhost:9090/`,输入默认的管理员账号(admin/admin),登录Openfire...

    安装Openfire服务器

    本教程将详细介绍如何在你的系统上安装和配置Openfire服务器。 **一、Openfire概述** Openfire以其易用性、可扩展性和稳定性而受到广泛欢迎。它支持多种操作系统,包括Windows、Linux和macOS。通过Openfire,你可以...

    openfire-4.5.0源码

    《Openfire 4.5.0源码解析:探索即时通讯框架的秘密》 Openfire,一个基于XMPP(Extensible Messaging and Presence Protocol)协议的开源即时通讯框架,因其高效、可扩展性和安全性,在IT领域备受青睐。4.5.0版本...

    openfire扩展整合现有系统用户

    1. **理解Openfire的用户管理机制**:Openfire自身有一个内置的用户存储库,但为了与外部系统兼容,它也支持多种外部认证服务,如JDBC(数据库)、LDAP(轻量级目录访问协议)和Active Directory(AD)等。...

    openfire二次开发

    默认情况下,Openfire使用HSQLDB作为内置数据库。如果需要使用MySQL,需要修改Openfire的数据库连接配置。这涉及更改`conf/database.properties`文件中的连接参数,如URL、用户名、密码和驱动类名。同时,还需要在...

    openfire测试demo

    Openfire采用插件式设计,允许开发者根据需求扩展其功能,例如会议、聊天记录、外部认证等。它的核心功能包括用户管理、群组管理、安全策略和性能优化。 1. **连接Openfire服务器**:在Java中,我们通常使用Smack库...

Global site tag (gtag.js) - Google Analytics