Spring Security LDAP. SearchControls.OBJECT_SCOPE используется вместо SearchControls.SUBTREE_SCOPE - PullRequest
1 голос
/ 11 марта 2020

spring-boot-starter-security 2.2.4.RELEASE, jdk 11

Метод org.springframework.security.ldap.SpringSecurityLdapTemplate.searchForMultipleAttributeValues ​​используется для поиска группы во время аутентификации веб-запроса. Запрос прошел аутентификацию. Однако группы пользователей не найдены.

Используются элементы управления поиском с областью поиска SearchControls.OBJECT_SCOPE. Элементы управления поиском, подготовленные с помощью следующего метода com.sun.jndi.toolkit.ctx.LdapCtx.c_getAttributes. (Имя имени, String [] attrIds, продолжение продолжение) В результате никаких групп не найдено. Если я использую шаблон ldap для поиска с тем же вводом (база поиска группы, фильтр поиска группы, атрибут роли группы), но с помощью SearchControls.SUBTREE_SCOPE, все группы будут найдены.

Что мне нужно изменить в org .springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder, чтобы использовать конфигурацию SearchControls.SUBTREE_SCOPE для поиска группы?

Спасибо!

1 Ответ

0 голосов
/ 13 марта 2020

Это была проблема конфигурации. Исходная база поиска группы указала на узел root. Вот почему поиск по шаблону LDAP с помощью SearchControls.SUBTREE_SCOPE позволил найти группы из дочерних узлов. Не уверен, почему com.sun.jndi.toolkit.ctx.LdapCtx.c_getAttributes использует SearchControls.OBJECT_SCOPE в качестве значения по умолчанию. Изменение базы поиска группы на указанный c групповой узел решило проблему.

...