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、外部数据库集成配置

配置驱动和连接字符串:


  ...
  
    com.mysql.jdbc.Driver
    jdbc:mysql://localhost/dbname?user=username&password=secret
  
  ...

 


  ...
 
    	com.mysql.jdbc.Driver
    	jdbc:mysql://localhost/openfirev1?username=root
 
  ...

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

2、认证集成配置

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

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

  ...
  
    
          org.jivesoftware.openfire.auth.JDBCAuthProvider 
    
  
  
     SELECT password FROM user_account WHERE username=?
     plain
   
   ...
  

 


  ...
  
    	
    		org.jivesoftware.openfire.auth.JDBCAuthProvider
    	
    
    
    	SELECT password FROM ofuser WHERE username=?
    	plain
   ...
  

 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--邮箱字段,用于搜索

  ...
  
    
   org.jivesoftware.openfire.user.JDBCUserProvider
    
  
  
     SELECT password FROM user_account WHERE username=?
     plain
  
  
     SELECT name,email FROM myUser WHERE username=?
     SELECT COUNT(*) FROM myUser
     SELECT username FROM myUser
     SELECT username FROM myUser WHERE
     username
     name
     email
  
   ...
 

  ...
     
    	
    		org.jivesoftware.openfire.user.JDBCUserProvider
    	
    
    
    	SELECT name,email FROM ofuser WHERE username=?
    	SELECT COUNT(*) FROM ofuser
    	SELECT username FROM ofuser
    	SELECT username FROM ofuser WHERE
    	username
    	name
    	email
    
   ...
 

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


    
        
        9090
        9091
    

    en

    
    
    	com.mysql.jdbc.Driver
    	jdbc:mysql://localhost/openfirev1?username=root
    
    
    	  		org.jivesoftware.openfire.auth.JDBCAuthProvider
    	
    	 		org.jivesoftware.openfire.user.JDBCUserProvider
    	
    
    
    	SELECT password FROM ofuser WHERE username=?
    	plain
    
    
    	SELECT name,email FROM ofuser WHERE username=?
    	SELECT COUNT(*) FROM ofuser
    	SELECT username FROM ofuser
    	SELECT username FROM ofuser WHERE
    	username
    	name
    	email
    

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

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


Openfire使用外部数据库详细教程_第1张图片


Openfire使用外部数据库详细教程_第2张图片


Openfire使用外部数据库详细教程_第3张图片


Openfire使用外部数据库详细教程_第4张图片
此时,数据库中已经生成了所有表!

Openfire使用外部数据库详细教程_第5张图片
 
Openfire使用外部数据库详细教程_第6张图片
 
Openfire使用外部数据库详细教程_第7张图片


Openfire使用外部数据库详细教程_第8张图片

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


Openfire使用外部数据库详细教程_第9张图片

然后从客户端spark登录:


Openfire使用外部数据库详细教程_第10张图片

登录成功!


Openfire使用外部数据库详细教程_第11张图片


 

 
 

 

 

 

 

 

你可能感兴趣的:(Openfire使用外部数据库详细教程)