开发者社区> 狗尾巴呢> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

XMPP 之Openfire的用户数据库整合

简介: openfire\documentation下的文档有比较详细的信息 如果手动一步步设置 删除默认, 首先停止正常运行的Openfire服务器 默认的库ofProperty的如下记录删除 provider.
+关注继续查看

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&amp;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

email

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C#编程:File.Open获取文件字节大小
C#编程:File.Open获取文件字节大小
98 0
程序员必知必会的那些邪恶的脚本
朝圣 前言 程序员必须掌握一定的运维知识。本文通过一些邪恶,搞破坏的方式。教会你一些危险的脚本操作。 附赠 运维意识与运维规范 1.线上操作规范 测试使用、Enter前再三确认、忌多人同时操作、先看再备份后改 2.
1169 0
Openfire使用上的一些技巧
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/48652745 Openfire使用上的一些技巧 作者:chszs,版权所有,未经同意,不得转载。
1032 0
Openfire使用上的一些技巧
Openfire使用上的一些技巧 1、把Openfire安装为系统服务 对于RedHat、CentOS、Fedora之类的系统,可以采用RPM包安装Openfire,安装后自然有了Openfire服务。
1130 0
openfire环境搭建
<h4 align="left">1、下载源代码:<a target="_blank" href="http://www.igniterealtime.org/downloads/source.jsp">http://www.igniterealtime.org/downloads/source.jsp</a> </h4> <p><img alt="" src="http://my.cs
1514 0
openfire环境搭建
1、下载源代码:http://www.igniterealtime.org/downloads/source.jsp   2、把源代码解压出的openfire_src文件夹放至eclipse workplace(注意:若是变更了解压出来的文件名,则接下来所有用到文件名的地方都要作出相应更改,否则会报错!)   3、把openfire_src文件夹里的三个无用的html文
1517 0
Openfire开发配置,Openfire源代码配置,OpenFire二次开发配置
1、下载源代码:http://www.igniterealtime.org/downloads/source.jsp   2、把源代码解压出的openfire_src文件夹放至eclipse workplace(注意:若是变更了解压出来的文件名,则接下来所有用到文件名的地方都要作出相应更...
737 0
在内核中创建文件 filp_open/sys_open
之前以为在内核中不能创建文件,其实不是这样子的,只要文件系统跑起来之后就可以像在用户空间一样操作文件.
1802 0
+关注
狗尾巴呢
从事研发20年 涉及桌面软件、嵌入式设备、C/S分层系统、B/S业务系统、互联网系统等等各类系统 语言涉及C/C++ .net系统 java系列 前端系列等等不同的类别 主控和主导了国家863项目,企业业务应用系统,自然语言翻译系统,数据库审计等系列的软件研发
文章
问答
文章排行榜
最热
最新
相关电子书
更多
阿里云数据库案例集下载
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载