XMPP 之Openfire的用户数据库整合(转)
2012-08-28 08:20
337 查看
来源:http://bbs.chinaunix.net/thread-3630163-1-1.html
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
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
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
相关文章推荐
- XMPP 之Openfire的用户数据库整合
- XMPP 之Openfire的用户数据库整合
- XMPP 之Openfire的用户数据库整合(openfire.xml配置参数)
- XMPP 之Openfire的用户数据库整合
- XMPP 之Openfire的用户数据库整合
- xmpp with openfire 之三 openfire扩展小试 整合现有用户
- openfire整合已有用户数据库(在logs里出现问题:
- xmpp with openfire之三 openfire扩展小试 整合现有系统用户
- xmpp with openfire之三 openfire扩展小试 整合现有系统用户
- xmpp with openfire之三 openfire扩展小试 整合现有系统用户
- xmpp with openfire之三 openfire扩展小试 整合现有系统用户
- openfire整合已有用户数据库 分享
- openfire xmpp 通过presence service判断用户是否在线
- WebSphere Application Server 6.0安全认证与已有系统的用户数据库整合实例
- [XMPP]我是怎么通过直接操作数据来为Openfire注册新用户的
- openfire xmpp 如何判断用户是否在线
- openfire 使用已有的数据库作为用户认证数据库 Custom Database Integration Guide
- openfire默认数据库与应用系统数据库整合
- 和phpwind整合,用户登录后出现数据库连接出错 数据库连接出错:SELECT COUNT(*) AS pmNUM FROM pw_msg WHERE `touid`='552' AND type='rebox' AND ifnew=1
- PHP链接xmpp,openfire新增用户,聊天室