Xmpp ejabberd и команда add-user - PullRequest
       11

Xmpp ejabberd и команда add-user

3 голосов
/ 30 августа 2009

У меня есть два сервера ejabberd, один локальный и удаленный онлайн на foobar.com.

Используя консоль xmpp pidgin, я могу отправить iq stanzas для тестов:

Локальный сервер имя хоста - eepc

<iq to='eeepc' from='greg@eeepc' id='get-registred-users-num-1' type='set'>
    <command xmlns='http://jabber.org/protocol/commands' action='execute' node='http://jabber.org/protocol/admin#get-registered-users-num'/>

</iq>

<iq from='eeepc' to='greg@eeepc/3493331071251540036345753' id='get-registred-users-num-1' type='result'>
    <command xmlns='http://jabber.org/protocol/commands' sessionid='2009-08-29T14:01:55.714639Z' node='http://jabber.org/protocol/admin#get-registered-users-num' status='completed'>
        <x xmlns='jabber:x:data'>
            <field type='hidden' var='FORM_TYPE'>
                <value>http://jabber.org/protocol/admin</value>
            </field>
            <field type='text-single' label='Number of registered users' var='registeredusersnum'>
                <value>7</value>
            </field>
        </x>
    </command>
</iq>

Удаленный сервер

<iq to='foobar.com' from='greg@foobar.com' id='get-registred-users-num-1' type='set'>
    <command xmlns='http://jabber.org/protocol/commands' action='execute' node='http://jabber.org/protocol/admin#get-registered-users-num'/>
</iq>

<iq from='foobar.com' to='greg@foobar.com/36523779951251567671615394' id='get-registred-users-num-1' type='error'>
    <command xmlns='http://jabber.org/protocol/commands' action='execute' node='http://jabber.org/protocol/admin#get-registered-users-num'/>
    <error code='404' type='cancel'>
        <item-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
    </error>
</iq>

Я не понимаю, почему я получаю, я не мог видеть какие-либо конкретные опции, чтобы сказать серверу принимать команды от удаленного?

Ответы [ 2 ]

1 голос
/ 13 октября 2009

Может быть, mod_configure просто не загружен на удаленном сервере. Вы можете проверить через lists:member(mod_configure, gen_mod:loaded_modules("foobar.com")). в админ-оболочке ejabberd. Я не могу представить, что речь идет о том, чтобы быть удаленным пользователем, потому что не требуется s2s-соединение между foobar.com и greg@foobar.com.

0 голосов
/ 28 декабря 2009

При просмотре исходного кода mod_configure.erl кажется, что есть проверка ACL, чтобы удостовериться, что команды configure adhoc разрешены, только когда запрашивающая сторона находится на учетной записи пользователя, настроила priv на этом виртуальном хосте. По умолчанию я думаю, что нет.

acl:match_rule(LServer, configure, From)

Возможно, вам понадобится добавить что-то вроде ...

{access, configure, [{allow, greg@foobar.com}]}.

... в ваш файл ejabberd.cfg.

...