OpenFire通过User Service管理用户

Posted 代码之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OpenFire通过User Service管理用户相关的知识,希望对你有一定的参考价值。

安装OpenFire服务器略去

1.安装User Service插件:

在管理控制平台找到选项卡“插件”,里边有我们需要安装的一个User Service插件,如果安装过了会显示已经安装的哪些插件,没有安装,需要点击左侧菜单“有效的插件”,在列表里找到此插件进行安装,可能有点慢,稍等即可。如果在有效的插件列表没有发现很多的插件,那么你需要重新安装openfire服务器或者升级最新版本。

技术分享

技术分享

2:

在选项卡“服务器”找到“服务器设置”下有个菜单“User Service”,说明安装插件成功,但是还是需要进行设置才能通过端口进行访问,不然无法访问或者报错401未授权等。设置:Enabled - User service requests will be processed. 启用、勾选HTTP basic auth - User service REST authentication with Openfire admin account. 如果选择Secret key auth,那C#写着太麻烦,通过访问接口需要传Secret key的值,否则就是报错401。

还可以在系统属性里添加进行设置接口是否启用,需要设置2项值如下图:

技术分享

3:然后就可以通过C#代码进行访问接口了

   string url = "http://192.168.3.66:9090/plugins/userService/users";
            WebRequest req = WebRequest.Create(url);
            string username = "admin";
            string password = "***";
            string usernamePassword = username + ":" + password;
            CredentialCache mycache = new CredentialCache();
            mycache.Add(new Uri(url), "Basic", new NetworkCredential(username, password));
            req.Credentials = mycache;
            req.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(usernamePassword)));
            WebResponse result = null;

            try
            {
                result = req.GetResponse();
                Stream ReceiveStream = result.GetResponseStream();
                //read the stream into a string
                StreamReader sr = new StreamReader(ReceiveStream);
                string resultstring = sr.ReadToEnd();

            }
            catch (Exception exp)
            {
                Console.WriteLine(exp.Message);
            }
            finally
            {
                if (result != null)
                {
                    result.Close();
                }
            }

最后会返回一个xml的文件,里边是所有用户的信息。

 

至于新增、删除的接口就不做案例里,你可以通过管理控制平台查找demo,里边有介绍如何访问接口,查看地址:http://192.168.3.66:9090/plugin-admin.jsp?plugin=userservice&showReadme=true&decorator=none

如下图点击图标就可以查看此插件的demo:

技术分享

 

以上是关于OpenFire通过User Service管理用户的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 Smack API 使用 openfire 服务器发送/接收消息

openfire用clustering怎么配置集群

Openfire分析之三:ConnectionManager 连接管理

(转)OpenFire源码学习之十四:插件管理

(转)OpenFire源码学习之十:连接管理(上)

openfire.xml 中指定的属性“provider.user.className”与数据库中存储的不同