2014-04-25 4 views
2

Я хочу установить соединение LDAP, чтобы перечислить всех пользователей из AD. я успешно выполнил это с информацией, хранящейся в XMLSpring LDAP, установив данные о соединении в java

<ldap:context-source 
url="ldap://<url>" 
base="dc=example,dc=local" 
username="<user>@example.local" 
password="<pass>" /> 

Но как я могу установить эту информацию от Java, а не в XML? Пробовал с:

LdapContextSource ctxSrc = new LdapContextSource(); 
    ctxSrc.setUrl("ldap://<url>"); 
    ctxSrc.setBase("dc=example,dc=local"); 
    ctxSrc.setUserDn("<user>@example.local"); 
    ctxSrc.setPassword("<pass>"); 
LdapTemplate tmpl = new LdapTemplate(ctxSrc); 
setLdapTemplate(tmpl); 

Но когда подножка

List users = (List<User>) ldapTemplate.search(LdapUtils.emptyLdapName(), "(&(objectCategory=person)(objectClass=user))", new UserAttributesMapper());

Я получаю NullPointerExeption. Runing, что без установки свойств из Java (то есть чтение из XML) все работает отлично

+0

Вы можете добавить стека исключений трассировки? – bhdrk

+0

Обновлено сообщение с trance стека – Alchnemesis

ответ

6

пожалуйста попробуйте это

LdapContextSource ctxSrc = new LdapContextSource(); 
    ctxSrc.setUrl("ldap://<url>"); 
    ctxSrc.setBase("dc=example,dc=local"); 
    ctxSrc.setUserDn("<user>@example.local"); 
    ctxSrc.setPassword("<pass>"); 

ctxSrc.afterPropertiesSet(); // this method should be called. 

LdapTemplate tmpl = new LdapTemplate(ctxSrc); 
setLdapTemplate(tmpl); 
+1

вот оно! ctxSrc.afterPropertiesSet(); нужно было называть LdapContextSource, я называл его шаблоном :) Спасибо! – Alchnemesis

 Смежные вопросы

  • Нет связанных вопросов^_^