asmack XMPP新用户注册

2024-01-05

StackOverflow 的好心人,请帮忙。 我已经在我的 ubuntu 机器上设置了一个 ejabberd 服务器,添加了虚拟主机,设置 {访问,注册,[{允许,全部}]}。 并注册了一个管理员帐户。我不是 Linux 专家,但我已经成功完成了这个基本设置。 现在,在我的 Win 7 计算机上,使用 Pidgin,我可以以管理员身份登录并访问许多管理功能。最重要的是我可以在服务器上创建新用户。 问题是我无法使用 asmack 库对我的 Android 客户端执行此操作。我可以建立连接并登录,但是当我尝试通过帐户管理器或发送 IQ 数据包注册新用户时,我收到禁止(403)响应错误。

AccountManager am = new AccountManager(connection);
Map<String, String> attributes = new HashMap<String, String>();
attributes.put("username", "my_user_name");
attributes.put("password", "my_password");
attributes.put("email", "[email protected] /cdn-cgi/l/email-protection");
attributes.put("name", "my_full_name");
am.createAccount("my_user_name", "my_password", attributes);


Registration reg = new Registration();
reg.setType(IQ.Type.SET);
reg.setTo(connection.getServiceName());
//      attributes.put("username", username);
//      attributes.put("password", password);
//      reg.setAttributes(attributes);
reg.addAttribute("username", username);
reg.addAttribute("password", password);
reg.addAttribute("email", email);
reg.addAttribute("name", fullName);
PacketFilter filter = new AndFilter(new PacketIDFilter(
    reg.getPacketID()), new PacketTypeFilter(IQ.class));
PacketCollector collector = connection.createPacketCollector(filter);
connection.sendPacket(reg);

有没有人遇到过类似的问题或者可以告诉我我做错了什么?

Thanks

这是我的 LogCat

10-10 10:00:26.249: DEBUG/StatusBarPolicy(1639): [BRIGHTHY] curNetwork=22003 curHPLMN=22003
10-10 10:00:26.839: INFO/System.out(21277): 10:00:26 AM SENT (1080244736): <iq id="fMJxx-4" to="morena.local" type="get"><query xmlns="jabber:iq:register"></query></iq>
10-10 10:00:26.869: INFO/System.out(21277): 10:00:26 AM RCV  (1080244736): <iq from='morena.local' to='[email protected] /cdn-cgi/l/email-protection/Smack' id='fMJxx-4' type='result'><query xmlns='jabber:iq:register'><instructions>Choose a username and password to register with this server</instructions><username>admin</username><password/><registered/></query></iq>
10-10 10:00:26.959: INFO/System.out(21277): 10:00:26 AM SENT (1080244736): <iq id="fMJxx-5" to="morena.local" type="set"><query xmlns="jabber:iq:register"><password>new_user</password><username>[email protected] /cdn-cgi/l/email-protection</username></query></iq>
10-10 10:00:26.969: INFO/System.out(21277): 10:00:26 AM RCV  (1080244736): <iq from='morena.local' to='[email protected] /cdn-cgi/l/email-protection/Smack' id='fMJxx-5' type='error'><query xmlns='jabber:iq:register'><password>new_user</password><username>[email protected] /cdn-cgi/l/email-protection</username></query><error code='403' type='auth'><forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq>
10-10 10:00:31.659: WARN/System.err(21277): forbidden(403)
10-10 10:00:31.659: WARN/System.err(21277):     at org.jivesoftware.smack.AccountManager.createAccount(AccountManager.java:246)
10-10 10:00:31.659: WARN/System.err(21277):     at org.jivesoftware.smack.AccountManager.createAccount(AccountManager.java:207)
10-10 10:00:31.659: WARN/System.err(21277):     at org.me.my_project.FriendProfileActivity.connectToServer(FriendProfileActivity.java:698)
10-10 10:00:31.659: WARN/System.err(21277):     at org.me.my_project.FriendProfileActivity.connectLogin(FriendProfileActivity.java:578)
10-10 10:00:31.659: WARN/System.err(21277):     at org.me.my_project.FriendProfileActivity$2.run(FriendProfileActivity.java:433)
10-10 10:00:31.659: INFO/System.out(21277): 10:00:31 AM SENT (1080244736): <iq id="fMJxx-6" to="morena.local" type="get"><query xmlns="jabber:iq:register"></query></iq>
10-10 10:00:31.679: INFO/System.out(21277): 10:00:31 AM RCV  (1080244736): <iq from='morena.local' to='[email protected] /cdn-cgi/l/email-protection/Smack' id='fMJxx-6' type='result'><query xmlns='jabber:iq:register'><instructions>Choose a username and password to register with this server</instructions><username>admin</username><password/><registered/></query></iq>
10-10 10:00:31.689: INFO/System.out(21277): 10:00:31 AM SENT (1080244736): <iq id="fMJxx-7" to="morena.local" type="set"><query xmlns="jabber:iq:register"><email>[email protected] /cdn-cgi/l/email-protection</email><password>new_user1</password><username>[email protected] /cdn-cgi/l/email-protection</username><name>[email protected] /cdn-cgi/l/email-protection</name></query></iq>
10-10 10:00:31.699: INFO/System.out(21277): 10:00:31 AM RCV  (1080244736): <iq from='morena.local' to='[email protected] /cdn-cgi/l/email-protection/Smack' id='fMJxx-7' type='error'><query xmlns='jabber:iq:register'><email>[email protected] /cdn-cgi/l/email-protection</email><password>new_user1</password><username>[email protected] /cdn-cgi/l/email-protection</username><name>[email protected] /cdn-cgi/l/email-protection</name></query><error code='403' type='auth'><forbidden xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/></error></iq>
10-10 10:00:31.729: WARN/System.err(21277): forbidden(403)
10-10 10:00:31.729: WARN/System.err(21277):     at org.me.my_project.utilities.CreateChatAccount.createAccount(CreateChatAccount.java:100)
10-10 10:00:31.729: WARN/System.err(21277):     at org.me.my_project.utilities.CreateChatAccount.createAccount(CreateChatAccount.java:143)
10-10 10:00:31.729: WARN/System.err(21277):     at org.me.my_project.FriendProfileActivity.connectToServer(FriendProfileActivity.java:706)
10-10 10:00:31.729: WARN/System.err(21277):     at org.me.my_project.FriendProfileActivity.connectLogin(FriendProfileActivity.java:578)
10-10 10:00:31.729: WARN/System.err(21277):     at org.me.my_project.FriendProfileActivity$2.run(FriendProfileActivity.java:433)

我找到了! 问题出在服务器配置中(但我仍然不明白为什么我可以在此更改之前从 Pidgin 注册新用户)。环境

%% In-band registration
{access, register, [{allow, all}]}.

似乎不适用于新版本的 ejabberd。你需要添加

{mod_register, [
      {access_from, register},
       ...
                ] ...

如果您想允许所有用户注册。如果您希望只有管理员具有此访问权限,那么您需要添加新的访问规则

{access, register_from, [{allow, admin}]}.

and

{mod_register, [
      {access_from, register_from},
       ...
                ] ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

asmack XMPP新用户注册 的相关文章

随机推荐

  • “ng build”与“ng build --prod”不一致

    我正在开发一个有角度的应用程序 Using Angular 5 2 5 角度 CLI1 6 8 当我执行命令时 ng build 我没有收到任何错误 但是当我尝试生产构建时 ng build prod 我收到错误 属性 someProper
  • Spring启动错误:java.lang.ArrayStoreException:sun.reflect.annotation.TypeNotPresentExceptionProxy

    我想使用 spring boot 来启动我的应用程序 但是在我在 pom xml 添加一些相关的 jar 后 它返回此错误 我感谢可能是由一些冲突 jar 引起的 应用程序 java package com mm application i
  • 检查日期是否是过去的Javascript

    全部 我使用 jQuery UI 作为日期选择器 我正在尝试使用 javascript 检查用户输入的日期是否是过去的日期 这是我的表单代码
  • 计算值太大而无法求幂的马尔可夫链概率

    我使用公式 exp X 作为马尔可夫链的速率 因此选择一个链接相对于另一个链接的比率是 exp X1 exp X2 我的问题是有时X很大 所以exp X 会超出范围double 或者 给定一个 X i 数组 其中一些 X i 太大 以致 e
  • 如何查看矩阵乘法的进度?

    我现在只需要显示矩阵乘法的中间进度 for unsigned int col 0 col
  • uitableview 部分标题内的日期格式,请帮忙

    首先我要说的是 我对 iPhone 开发非常陌生 但我非常努力地学习 因此 非常感谢你们专业人士愿意分享的任何帮助 所以我有一个问题 如果有人能回答我的话那就太棒了 我正在研究更多一项核心数据 并一直在使用苹果开发者网站上找到的核心数据书籍
  • 无法访问 usort() 函数调用内部的全局变量

    我正在尝试使用usort 并在其函数范围内利用全局变量 但没有成功 我已将代码简化为简单的框架以展示我的意思 testglobal 1 function cmp a b global testglobal echo hi testgloba
  • 对哈德逊的“圣杯战争”自动回复“是”

    我们正在使用 grails war 来构建对 hudson 的战争 然后将另一项工作部署到我们的测试环境 问题在于 当 grails war 遇到插件升级时 它会不断要求用户升级某些插件 有没有办法对所有用户输入响应 y 我尝试过 non
  • 服务器端病毒扫描[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们不允许提出寻求书籍 工具 软件库等推荐的问题 您可以编辑问题 以便用事实和引文来回答 这个问题似乎不是关于主要由程序员使用的特定编程问
  • 如何读取数据文件?

    如果我有数据file txt我想使用以下命令将数据读取到变量中 set 我怎样才能做到这一点 如何将一行移动到另一行 根据您的评论从文件中读取两行 echo off setLocal EnableDelayedExpansion for f
  • 在异步任务之间自由切换的正确方法是什么?

    假设我有一些异步运行的任务 它们可能是完全独立的 但我仍然想设置任务暂停的点 以便它们可以同时运行 并发运行任务的正确方法是什么 我目前正在使用await asyncio sleep 0 但我觉得这增加了很多开销 import asynci
  • akka 中每个主机的最大 Actor 数量

    akka 的一个盒子上最多可以有多少个 actor public void MyActor extends AkkaActor receive Objet obj so something 1 Is there some limit on
  • 对列表进行子类化的 Pythonic 方式

    这是我的一般问题空间 我通过 I2C 与设备建立了字节 位协议 我有一个命令的 数据库 可以完整描述所有位字段类型 值和枚举 我有一个类来使用数据库和一个 i2c 驱动程序 事务器 以便我可以调用命令并获取响应 MyProtocol Pro
  • Android L 中的警报对话框按钮问题

    我在我的应用程序中创建了一个 AlertDialog 在 Android L AlertDialog 按钮适合对话框之前 但在 Android L 中按钮标签会自动转换标题大小写 并且按钮不适合对话框 请看截图 Android L 安卓奇巧
  • 通过vscode的SSH隧道打开Matplotlib图

    我正在设置一个远程工作站 以便在另一台包含 GPU 的计算机上从我的笔记本电脑运行与机器学习相关的 python 代码 我使用 vscode 的 SSH 远程功能来远程运行和调试我的代码 我对这个界面非常满意 但是 我无法生成来自 matp
  • python身份字典[重复]

    这个问题在这里已经有答案了 可能的重复 如何制作一个 python 字典 返回字典中缺少的键的键 而不是引发 KeyError https stackoverflow com questions 6229073 how to make a
  • 当使用 swift3.0 执行按钮操作时,如何在 ios 移动设备中打开文档文件,例如(.pdf、.doc、.docx)?

    我需要打开UIDocumentPickerViewController它应该允许用户选择所有类型的文件 即我使用的 pdf doc 文件UIDocumentPickerViewController方法 我的代码 UIDocumentPick
  • 使用前导点符号调用 Swift 类工厂方法?

    在最近的一个问题中 发帖者有这样一行有趣的代码 self view backgroundColor whiteColor 看到这一点我很惊讶 我只见过前导点用于枚举值的符号 在这种情况下 backgroundColor属于类型UIColor
  • 在 C# 中解析 json 文件以获取所有部分和属性

    更新 因此 在试图正确表达这个问题时 我误导了响应者 没有给我我需要的答案 抱歉 让我试着澄清一下 我需要能够循环浏览一个 json 文件 该文件的结构不像我在 OP 中指出的那样 它更加随机 OP 文件没有很好地传达这一点 让我尝试描述一
  • asmack XMPP新用户注册

    StackOverflow 的好心人 请帮忙 我已经在我的 ubuntu 机器上设置了一个 ejabberd 服务器 添加了虚拟主机 设置 访问 注册 允许 全部 并注册了一个管理员帐户 我不是 Linux 专家 但我已经成功完成了这个基本