OpenFire源码学习之二十八:与其他系统的用户整合

与三方系统整合。Openfire

下面是opnfire的解决方案

属性名

属性值

描述

provider.auth.className

org.jivesoftware.openfire.auth.DefaultAuthProvider

用户验证

provider.group.className

org.jivesoftware.openfire.group.DefaultGroupProvider

获取组相关数据

provider.user.className

org.jivesoftware.openfire.user.DefaultUserProvider

获取用户相关数据

除了of。配置非常简单只需要

JDBCAuthProvider

属性名

说明

输入值

输出列

属性值

jdbcAuthProvider.passwordSQL

获取用户密码的SQL

登录名

密码

selectpwdfromuserswhereuid=?

jdbcAuthProvider.passwordType

密码类型

JDBCUserProvider

属性名

说明

输入值

输出列

属性值

jdbcUserProvider.allUsersSQL

获取所有用户

用户的uid

selectuidfromusers

jdbcUserProvider.loadUserSQL

获取用户信息

用户uid

用户名,email

selectname,emailfromuserswhereuid=?

jdbcUserProvider.userCountSQL

获取用户数量

用户数量

selectcount(*)fromusers

jdbcUserProvider.usernameField

指定用户登录名的列名

uid

jdbcUserProvider.nameField

指定用户名称的列名

name

jdbcUserProvider.emailField

指定用户email的列名

email

JDBCGroupProvider

属性名

说明

输入值

输出列

属性值

jdbcGroupProvider.allGroupsSQL

获取所有组的SQL

组名

selectgroupNamefromgroups

jdbcGroupProvider.descriptionSQL

获取组描述

组名

组描述

selectdescriptionfromgroupswheregroupName=?

jdbcGroupProvider.groupCountSQL

获取组的数量

组的数量

selectcount(*)fromgroups

jdbcGroupProvider.loadAdminsSQL

获取组的管理员

组名

组管理员

selectuidfromgroupuserswheregroupName=?andadmin=1

jdbcGroupProvider.loadMembersSQL

获取组的成员

组名

组成员uid

selectuidfromgroupuserswheregroupName=?andadmin=0

jdbcGroupProvider.userGroupsSQL

获取成员的组

成员uid

成员所属组名

selectgroupNamefromgroupuserswhereuid=?

注意:其中获取组的管理员和组的成员中的判断要根据相应系统修改,我这边假设

最后,配置新的管理员用户(应该在users表中添加一个用户作为管理员)

属性名

说明

属性值

admin.authorizedJIDs

指定新数据源中的管理员用户,注意是是完整

admin@192.168.2.104

配置好后,重启Openfire。

使用Openfire就可以看到你数据源中的用户/组信息了。

在修改添加系统属性的过程中,,若无法登录表。

除了以上在控制台修改之外,也可以直接操作ofProperty数据库表

insert into ofproperty( name, propValue) values( 'admin.authorizedJIDs' , 'admin@192.168.2.104');insert into ofproperty( name, propValue) values( 'jdbcAuthProvider.passwordSQL','select pwd from users where  name=?'); insert into ofproperty( name, propValue) values( 'jdbcAuthProvider.passwordType' , 'plain'); Insert into ofproperty(name,propValue)values('jdbcProvider.connectionString' 'jdbc:jtds:sqlserver://192.169.1.120  :1433/test_openfire_jcdb;appName=jive;user=sa;password=hytest'); insert into ofproperty( name, propValue) values( 'jdbcProvider.driver' , 'net.sourceforge.jtds.jdbc.Driver' ); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.allUsersSQL', 'select name from users' ); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.emailField' ,'email'); insert into ofproperty( name, propValue) values('jdbcUserProvider.loadUserSQL' ,'select * from users where uid=?'); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.nameField', 'name'); insert into ofproperty( name, propValue) values('jdbcUserProvider.userCountSQL', 'select count(name) from   users'); insert into ofproperty( name, propValue) values( 'jdbcUserProvider.usernameField' , 'name' ); UPDATE ofproperty SET propValue ='org.jivesoftware.openfire.auth.JDBCAuthProvider' WHERE   NAME='provider.auth.className'; UPDATE ofproperty SET propValue='org.jivesoftware.openfire.user.JDBCUserProvider' WHERE   NAME='provider.user.className'; UPDATE ofproperty SET propValue='192.168.2.104' WHERE NAME='xmpp.domain';

欲望以提升热忱,毅力以磨平高山。

OpenFire源码学习之二十八:与其他系统的用户整合

相关文章:

你感兴趣的文章:

标签云: