Получить группу LDAP в LifeRay
Мне нужно сделать Liferay-hook, когда пользователь входит в систему, проверьте в LDAP группу.
Если группа "пользователи" не делает ничего особенного, но если у нее нет группы LDAP, мне нужно перенаправить на другую страницу внутри портала Liferay.
Я знаю, как сделать перенаправление, но моя проблема заключается в следующем: Как узнать группу LDAP пользователя?
На самом деле я импортирую только группу пользователей в конфигурации LDAP Liferay, как это:
(&(uid=@screen_name@)(memberof=cn=usersr,ou=groups,o=users.com))
Любая идея?
Спасибо
1 ответ
Проблема, с которой вы столкнетесь, заключается в том, что каталоги LDAP несколько противоречивы при хранении членства в группах для пользователя.
eDirectory хранит членство в группах для пользователя (groupMembership в LDAP). Active Directory в более поздних версиях (я думаю, что в 2008 году) хранит memberOf в User, вроде. Он не сохраняется как статическое значение в AD, но может быть прочитан и рассчитан.
Обычно подход LDAP заключается в запросе:
(&(objectClass=group)(member=cn=MyUser,ou=MyOu,dc=com))
То есть найдите мне все группы, для которых этот пользователь является участником, а затем проверьте, возвращена ли ваша контрольная группа. Это не очень эффективно. Но будет работать.