Скачал Ejabberd 1.1.2, платформа Win2003R2 (DC). Аутентификация - внешний скрипт (check_pass_win32.pl, существенно переделанный). Передалан тот момент, который позволяет имет в ActiveDirectory пользователей с русскими логинами. У каждого пользователя есть поле e-mail, по которому и происходит поисх и соответствие с введённым JID-ом. Так вот пользователь домена, например "Проверка", имеет адрес
%% We use the same server and port, but want to bind anonymously because
%% our LDAP server accepts anonymous requests to
%% "ou=AddressBook,dc=example,dc=org" subtree.
{ldap_rootdn, "ХХХХХХХХ"},
{ldap_password, "ХХХХХХХХ"},
%% define the addressbook's base
{ldap_base, "ldap://srv0.test.by.ru:389/DC=test,DC=by,DC=ru"},
%% user's part of JID is located in the "mail" attribute
{ldap_uidattr, "mail"},
%% common format for our emails
% {ldap_uidattr_format, "%u@mail.example.org"},
{ldap_uidattr_format, "%u@test.ru"},
%% We have to define empty filter here, because entries in addressbook does not
%% belong to shadowAccount object class
{ldap_filter, "mail=%u@test.ru"},
%% Now we want to define vCard pattern
{ldap_vcard_map,
[{"NICKNAME", "%u", []}, % just use user's part of JID as his nickname
{"GIVEN", "%s", ["givenName"]},
{"FAMILY", "%s", ["sn"]},
{"FN", "%s, %s", ["sn", "givenName"]}, % example: "Smith, John"
{"EMAIL", "%s", ["mail"]},
{"BDAY", "%s", ["birthDay"]}]},
%% Search form
{ldap_search_fields,
[{"User", "%u"},
{"Name", "givenName"},
{"Family Name", "sn"},
{"Email", "mail"},
{"Birthday", "birthDay"}]},
%% vCard fields to be reported
%% Note that JID is always returned with search results
{ldap_search_reported,
[{"Full Name", "FN"},
{"Nickname", "NICKNAME"},
{"Birthday", "BDAY"}]}
]}
Задача:
1. На входе имеем переменную %u, в которой в нашем примере - proverka
2. Добавляем к этой переменной локальный домен, получаем - %u@test.ru
3. Устанавливаем полученую строку {ldap_filter, "mail=%u@test.ru"}
4. Нифига ничего не выводит...
Где я не прав?