Printemps LDAP utilisation de base

Je suis à essayer de comprendre comment le Printemps LDAP (pas le Printemps de sécurité de chose) fonctionne par la mise en place le plus de travail de base du programme, mais il semble que l'authentification des pauses.

C'est l'erreur que je reçois:

Exception in thread "main" java.lang.NullPointerException 
au org.springframework.ldap.core.support.AbstractContextSource.getReadOnlyContext(AbstractContextSource.java:125) 
au org.springframework.ldap.de base.LdapTemplate.recherche(LdapTemplate.java:287) 
au org.springframework.ldap.de base.LdapTemplate.recherche(LdapTemplate.java:237) 
au org.springframework.ldap.de base.LdapTemplate.recherche(LdapTemplate.java:588) 
au org.springframework.ldap.de base.LdapTemplate.recherche(LdapTemplate.java:546) 
au org.springframework.ldap.de base.LdapTemplate.recherche(LdapTemplate.java:401) 
au org.springframework.ldap.de base.LdapTemplate.recherche(LdapTemplate.java:421) 
au org.springframework.ldap.de base.LdapTemplate.recherche(LdapTemplate.java:441) 

Le code qui est exécuté dans la méthode de jeter l'exception est la suivante:

return getContext(authenticationSource.getPrincipal(),
                  authenticationSource.getCredentials());

Il semble donc que j'ai besoin de configurer une authentification de la source dans le contexte de l'application? Je suis vraiment perdu.

Voici mon code:

package se.test.connector.ldap;
import java.util.List;
import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.ldap.core.AttributesMapper;
import org.springframework.ldap.core.DistinguishedName;
import org.springframework.ldap.core.LdapTemplate;
import org.springframework.ldap.core.support.LdapContextSource;
import org.springframework.ldap.filter.EqualsFilter;
public class LdapTest {
public static void main(String[] args) {
LdapContextSource ctxSrc = new LdapContextSource();
ctxSrc.setUrl("ldap://<ldapUrl>:389");
ctxSrc.setBase("DC=bar,DC=test,DC=foo");
ctxSrc.setUserDn("<username>@bar.test.foo");
ctxSrc.setPassword("<password>");
LdapTemplate tmpl = new LdapTemplate(ctxSrc);
PersonDao dao = new PersonDao(tmpl);
dao.getAllPersonNames();
}
public static class PersonDao {
private LdapTemplate ldapTemplate;
public PersonDao(LdapTemplate ldapTemplate) {
this.ldapTemplate = ldapTemplate;
}
public void setLdapTemplate(LdapTemplate ldapTemplate) {
this.ldapTemplate = ldapTemplate;
}
public List getAllPersonNames() {
EqualsFilter filter = new EqualsFilter("objectclass", "person");
return ldapTemplate.search(DistinguishedName.EMPTY_PATH,
filter.encode(),
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs) throws NamingException {
return attrs.get("cn").get();
}
});
}
}
}
InformationsquelleAutor damd | 2012-09-06