创建新用户时 Smack XMPP 错误:禁止 - auth
Posted
技术标签:
【中文标题】创建新用户时 Smack XMPP 错误:禁止 - auth【英文标题】:Smack XMPP error while creating new user: forbidden - auth 【发布时间】:2015-05-13 09:28:54 【问题描述】:我正在尝试通过管理员帐户创建新用户。但我收到身份验证错误。 我尝试了this 之类的答案,但没有帮助。
我创建新用户的代码:
AccountManager accountManager = AccountManager.getInstance(mConnection);
if (accountManager.supportsAccountCreation())
try
accountManager.createAccount(username, password);
catch (XMPPException ex)
LOG.info(ex.getMessage(), ex);
else
LOG.error("Server doesn't support creating new accounts");
我允许在配置中注册 ALL:
access, register, [allow, all].
access, register_from, [allow, all].
mod_register, [
...
ip_access, [allow, "127.0.0.0/8",
deny, "0.0.0.0/0"],
access_from, register_from,
access, register
],
即使有这个配置我也有错误:
org.jivesoftware.smack.XMPPException$XMPPErrorException: XMPPError: forbidden - auth
at org.jivesoftware.smack.XMPPException$XMPPErrorException.ifHasErrorThenThrow(XMPPException.java:135)
at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:232)
at org.jivesoftware.smack.PacketCollector.nextResultOrThrow(PacketCollector.java:213)
at org.jivesoftware.smackx.iqregister.AccountManager.createAccount(AccountManager.java:272)
at org.jivesoftware.smackx.iqregister.AccountManager.createAccount(AccountManager.java:244)
附言 Smack 4.1.0
【问题讨论】:
你确定你对ip_access, [allow, "127.0.0.0/8", deny, "0.0.0.0/0"]
没问题,即你是从本地主机连接的吗?
@erszcz 哦,忘了这个。在允许列表中添加了我的 ip -> 现在它可以工作了。谢谢,伙计。
@erszcz 但它仅适用于 [allow, all] 和 [allow, admin] 我收到相同的错误 =/
我不确定您的代码 sn-p 的上下文,但也许用户未通过管理员身份验证?基本上,此机制用于为您自己注册一个帐户,即匿名用户连接到服务器,为他/她自己注册一个帐户,然后(然后可能重新连接并)使用新帐户进行身份验证。如果您想对帐户创建进行更严格的控制,请使用命令行mongooseimctl
或自定义身份验证模块。
@erszcz yeh, mb custom auth module - 是最佳选择。
【参考方案1】:
解决方案:
step1:
step2:
step3:
完成所有这三个步骤后,运行您的程序,您将能够在ejabberd
服务器上注册一个新用户。
【讨论】:
以上是关于创建新用户时 Smack XMPP 错误:禁止 - auth的主要内容,如果未能解决你的问题,请参考以下文章