У меня есть эта конфигурация в ejabberd для общего списка с использованием сервера LDAP:
mod_shared_roster_ldap:
#use_cache: true
ldap_base: "o=Applications,o=gobiernodecanarias,c=es"
ldap_filter: "(cn=*)"
ldap_rfilter: "(&(objectClass=groupOfUniqueNames)(cn=CC-IM*))"
ldap_gfilter: "(&(objectClass=groupOfUniqueNames)(cn=%g))"
#ldap_ufilter: "(&(objectClass=inetOrgPerson)(uid=%u))"
ldap_useruid: uid
ldap_userdesc: displayName
ldap_memberattr: uniqueMember
ldap_memberattr_format: "%u"
ldap_groupattr: cn
Мой сервер LDAP - ds389, и мы используем groupOfUniqueNames для групп.
У тестовой группы есть следующие атрибуты:
dn: cn=group1,o=jabber,o=domain,c=net
cn: GROUP1
uniqueMember: uid=user1,o=otherdomain,c=net
Когда я подключаю своего тестового пользователя (user1), я вижу это в журналах LDAP:
В логах сервера вижу такое:
[07/Nov/2019:12:04:08.778513089 +0000] conn=262835 op=2 SRCH base="o=jabber,o=domain,c=net" scope=2 filter="(&(&(objectClass=groupOfUniqueNames)(cn=GROUP1))(cn=*))" attrs="cn cn uniqueMember"
[07/Nov/2019:12:04:08.779258128 +0000] conn=262835 op=2 RESULT err=0 tag=101 nentries=1 etime=0.0000895559
[07/Nov/2019:12:04:08.780265986 +0000] conn=262871 fd=148 slot=148 connection from xx.xxx.xxx.xx to xx.xxx.xxx.xxx
[07/Nov/2019:12:04:08.780444959 +0000] conn=262838 op=2 SRCH base="o=otherdomain,c=net" scope=2 filter="**(&(uid=uid=user1,o=otherdomain,c=net)(uid=*))"** attrs="uid"
Проблема в том, что используется (& (uid = uid = user1, o = otherdomain, c = net) (uid =)) вместо (& (uid = user1) (uid =)), поэтому он не может найти пользователей группы.
Есть ли способ передать только часть uid?
заранее спасибо