ejabberd LDAP и mod_shared_roster [почти SOLVED]
В общем всё получилось, из LDAP берутся пользователи, в общем ростере всех видно, но хотелось бы видеть не JIDы, а ники, потому как пользователи в английском не ориентируются. mod_vcard_ldap включен, если заглядывать в vcard'ы пользователей, то ники есть, но в ростере только JID'ы. Не в ручную же их вписывать.
Для версии 1.1.2 был специальный mod_shared_roster_ldap, в настройках которого можно было прописать получение ника, и, если я правильно помню это работало корректно, т.е. shared roster выдавался клиенту с заполненными никами. Но он уже заброшен, неизвестно как он работает во второй версии.
Может кто-то знает как это можно сделать не допиливая старый костыль?
PS: Забыл, клиент будет gajim, т.к. я его "допилил", на счёт "автоконфигурирования".
- Для комментирования войдите или зарегистрируйтесь
Не знаю как во 2-й версии, а
Не знаю как во 2-й версии, а в 1-й+мод(у мя до сих пор стоит на работе) работает нормально.
Вот почитай про моё допиливание.
http://www.gentoo.ru/node/9399
Честно говоря, откатываться
Честно говоря, откатываться на старый ejabberd не хочется совсем, интересны именно приёмы получения приемлемого результата со свежей версией.
А вот у свежей версии я, к
А вот у свежей версии я, к сожалению, не знаю как дела обстоят с mod_shared_roster_ldap. Может ребяты с которые для gentoo.ru поднимали ejabberd+ldap подскажут.
"Курнул" сейчас исходники
"Курнул" сейчас исходники ёжика, в общем это ущербность самого mod_shared_roster, вот как там написано:
Т.е. name в котором передаётся ник всегда пустой, для примера, тот же кусок кода в mod_shared_roster_ldap:
Вот и весь хрен хрен копейки...
Ну вот и отличненько, правь
Ну вот и отличненько, правь исходник :). Отпишись по результату только.
Что-то мне подсказывает, что
Что-то мне подсказывает, что интеграция mod_shared_roster_ldap окажется проще чем исправление mod_shared_roster, т.к. функция возвращающая имя пользователя описана только в mod_shared_roster_ldap и завязана на обращения к ldap. Я не знаком со структурой данных в ёжике настолько, что бы дописать существующий mod_shared_roster, и боюсь это не получится вообще, что-то мне подсказывает что vcard и roster вещи в еже параллельные.
Чем закончились попытки улучшить mod_shared_roster_ldap у тебя?
Попытки закончились
Попытки закончились успешно.
Усё работает.
Опять же см. http://www.gentoo.ru/node/9399 -там описан алгоритм(как я его понял) работы mod_shared_rostre_ldap
В общем хожу по старым
В общем хожу по старым граблям. Всё те же проблемы с не соответствием AD схемы и той что используется для авторизации в *nix'ах.
Как я понял, в AD в ветке пользователя прописаны все группы членом которых он является. У меня членство в группах хранится в ветках групп. Если сделать как думал автор оригинального mod_shared_roster_ldap, то заставить работать всё это можно, с вот такими настройками:
Т.к. будет производиться поиск только в ou=Groups (у меня группы отдельно от пользователей), а у самих групп есть и cn и memberUid, но displayName мы не увидим, т.к. выборка имени для пользователя делается так:
ufilter при указанных настройках будет таким: '&(&(memberUid=%u)(cn=%g))(ObjectClass=*)', т.е. displayName в результате этого запроса не вернётся, совсем, нет у группы такого атрибута и пользователя с cn равным имени группы тоже нет. :-( Но и не правильным это поведение не назовёшь, всё-таки для AD этот запрос отработает верно.
Вернулись туда откуда пришли, снова вместо имен пользователей их логины получились.
Ок. Вроде получилось. Добавил
Ок. Вроде получилось. Добавил ещё один параметр в конфиг для mod_shared_roster_ldap ldap_ufilter если его не трогать, то будет подставлено то чисто ADшное решение которое было изначально, для не ADшников достаточно будет указать (uid=%u).
У меня заработало с такими настройками:
Завтра буду проверять на наличие проблем с доступностью пользователей. Кого видно кого не видно...
До сих пор проблем не
До сих пор проблем не обнаружено, надо бы где-нибудь выложить патч и описание.
к не лдап-версия есть вот
к не лдап-версия есть вот такой патч, нужно ещё поискать.
https://support.process-one.net/browse/EJAB-114
Эх! Раньше бы в эту сторону
Эх! Раньше бы в эту сторону толкнули...
Всё равно "будем посмотреть", я правильно понял, из ldap он не сможет данные получать?
я её искал фиг знает сколько,
я её искал фиг знает сколько, у меня есть ворох патченных сборок ежа, по теме 2 патча - один этот, воторой задевает mod_roster и mod_roster_odbc там похожие изменения, но я от этого отказался когда в psi откопал примерно туже функцию - они начали конфликтовать. думаю это можно и в лдап прикрутить просто посмотреть как другие атрибуты из лдапа достаются в mod_shared_roster и немного переписать... но я не программер. возможно лучше поискать/спросить на форуме ejabberd.im
Если не сложно покажите
Если не сложно покажите пожалуйста свой конфиг. Неполучаеться настроить