Я подключаюсь к LDAP с помощью AuthenticationManagerBuilder внутри класса WebSecurityConfigurerAdapter в Spring.Метод конфигурирования следующий:
@Override
protected void configure(AuthenticationManagerBuilder builder) throws Exception {
builder
.ldapAuthentication()
.ldapAuthoritiesPopulator(autoLDAP)
.contextSource()
.url(env.getProperty("ldap.address"))
.managerDn(env.getProperty("ldap.manager"))
.managerPassword(env.getProperty("ldap.manager.password"))
.and().userDnPatterns(env.getProperty("ldap"));
}
autoLDAP - это LdapAuthoritiesPopulator.И эти свойства следующие:
ldap.address=ldap://W.X.Y.Z:389/dc=whatever,dc=com
ldap.patterns=CN={0},OU=Users,OU=Company,OU=MyCity
ldap.manager=Manager
ldap.manager.password=123456789
Если я продолжу в том же духе, это будет работать для пользователей в "OU = MyCity", но я хочу также искать варианты использования в "других городах".Поэтому я хочу поиск со свойствами, подобными этим, которые ищут по поддеревам:
ldap.address=ldap://W.X.Y.Z:389/dc=whatever,dc=com
ldap.patterns=CN={0}
ldap.manager=Manager
ldap.manager.password=123456789
Я много искал об этом, но не могу найти, где установить область для поддерева, используя эти классы.Спасибо за вашу помощь.