Smack XMPP创建新用户时出现错误:禁止 - 认证。

5
我正在尝试通过管理员账户创建新用户,但是我收到了权限错误。我尝试了像这样的答案,但它没有帮助。
我的创建新用户的代码:
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");
        }

我允许在配置中所有人注册:

{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
@erszcz 哦,忘记了这个。将我的 IP 添加到允许列表中 -> 现在它可以工作了。谢谢,伙计。 - Suvitruf - Andrei Apanasik
@erszcz但是它只能与[{allow, all}]一起使用,与[{allow, admin}]一起使用我会收到相同的错误=/ - Suvitruf - Andrei Apanasik
1
我不确定你代码片段的上下文,但也许用户没有被认证为管理员?基本上,这个机制被用于注册一个账户,即匿名用户连接到服务器,为自己注册一个账户,然后(可能重新连接并且)使用新账户进行认证。如果你想要更严格地控制账户创建,可以使用命令行mongooseimctl或者自定义认证模块。 - erszcz
@erszcz,是的,自定义认证模块是最佳选择。 - Suvitruf - Andrei Apanasik
1个回答

2
解决方案:
step1:

enter image description here

step2:

enter image description here

step3:

enter image description here

完成这三个步骤后,运行程序,您将能够在ejabberd服务器上注册一个新用户。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接