Я пытаюсь получить список всех пользователей, зарегистрированных на сервере. Мой сервер - Ejabberd. Когда я использую обнаружение службы на узле all users
, я получаю ошибку 403. Вот мой запрос строфа и ошибка строфа -disco # items возвращает код ошибки 403
Запрос
<iq id="U7" type="get" to="server.lt" xmlns="jabber:client">
<query node="all user" xmlns="http://jabber.org/protocol/disco#items" />
</iq>
Response
<iq from="server.lt" to="[email protected]/res" id="U8" type="error" xmlns="jabber:client">
<query xmlns="http://jabber.org/protocol/disco#items" node="all users" />
<error code="403" type="auth">
<forbidden xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
</error>
</iq>
Когда я проверил на сервере, я не нашел mod_disco там, так что я добавил новый модуль mod_disco. Нужно ли делать дальнейшие изменения на сервере или есть ли какие-либо проблемы в моей строфе запроса?
Update:
Я попытался, давая мой доступ администратора пользователя, и команда сделала работу, но это не практично, чтобы дать каждому пользователю доступ администратора. Есть ли способ сделать это с помощью клиента или сервера без использования доступа администратора для пользователя?
Я полагаю, мне нужно будет предоставить всем пользователям доступ. Как я могу это сделать? Должен ли я заменить администратора на пользователя? – noob
Если у вас есть объявление типа '{acl, user, ....}', вы можете это сделать. Конфигурация по умолчанию включает в себя «локальный» ACL, поэтому вы можете изменить приведенное выше на '{access, configure, [{allow, local}]}'. Обратите внимание, что это даст всем локальным пользователям право создавать и удалять пользователей и изменять пароли других пользователей. – legoscia
Спасибо. Сервер для частного использования в любом случае. На самом деле у меня нет доступа к конфигурационному файлу ejabberd, можно ли это сделать с помощью панели администрирования? В нем есть mod_adhoc и mod_configure модуль. – noob