Я пытаюсь настроить окнеРазличающееся_имя_базыполь на моем Spring Ldap источнике контекста, но он продолжает бросать исключение:безопасности LDAP Spring окнеРазличающееся_имя_базыполе
конфиг выглядит следующим образом:
<beans:bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<beans:constructor-arg index="0" value="${ldap_server}"/>
<beans:constructor-arg index="1" value="${ldap_searchbase}"/>
</beans:bean>
мой ldap_searchbase имеет пространство в нем, и я посмотрел на коде Spring: что вызывает вопрос:
public DefaultSpringSecurityContextSource(String providerUrl) {
Assert.hasLength(providerUrl, "An LDAP connection URL must be supplied.");
StringTokenizer st = new StringTokenizer(providerUrl);
ArrayList<String> urls = new ArrayList<String>();
// Work out rootDn from the first URL and check that the other URLs (if any) match
while (st.hasMoreTokens()) {
String url = st.nextToken();
String urlRootDn = LdapUtils.parseRootDnFromUrl(url);
urls.add(url.substring(0, url.lastIndexOf(urlRootDn)));
logger.info(" URL '" + url + "', root DN is '" + urlRootDn + "'");
if (rootDn == null) {
rootDn = urlRootDn;
} else if (!rootDn.equals(urlRootDn)) {
throw new IllegalArgumentException("Root DNs must be the same when using multiple URLs");
}
}
я получаю «корень DNs должна быть одинаковой при использовании нескольких URL» ошибки, и я замечаю, что строка токенизировать r tokens по пробелам, так что это chomping мой baseDN и превращение его в отдельный URL-адрес сервера LDAP. Что дает? Что я здесь делаю неправильно?
я получаю один и тот же вопрос (очевидно), если я настраиваю так:
<beans:bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<beans:constructor-arg index="0" value="${ldap_server}/${ldap_searchbase}"/>
</beans:bean>