@org.junit.Test
@org.junit.Ignore
public void testLdapTemplate() throws Exception {
try {
LdapTemplate ldap = (LdapTemplate)appContext.getBean("ldapTemplate");
String user = props.getProperty("claimUser");
Assert.notNull(user, "Property 'claimUser' not configured");
String dn = null;
AndFilter filter = new AndFilter();
filter.and(new EqualsFilter("objectclass", "person")).and(new EqualsFilter("cn", user));
//find DN of user
AttributesMapper mapper =
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs) throws NamingException {
return attrs.get("distinguishedName").get();
}
};
@SuppressWarnings("rawtypes")
List users =
ldap.search(
"OU=users,DC=emea,DC=mycompany,DC=com",
filter.toString(),
SearchControls.SUBTREE_SCOPE,
mapper
);
Assert.isTrue(users.size() == 1, "Only one user expected");
dn = (String)users.get(0);
// get attributes
AttributesMapper mapper2 =
new AttributesMapper() {
public Object mapFromAttributes(Attributes attrs) throws NamingException {
Map<String, String> map = new HashMap<String, String>();
NamingEnumeration<? extends Attribute> attrEnum = attrs.getAll();
while (attrEnum.hasMore()) {
Attribute att = attrEnum.next();
System.out.println(att.toString());
}
map.put("cn", (String)attrs.get("cn").get());
map.put("mail", (String)attrs.get("mail").get());
map.put("sn", (String)attrs.get("sn").get());
map.put("givenName", (String)attrs.get("givenName").get());
return map;
}
};
ldap.lookup(dn, new String[] {"cn", "mail", "sn", "givenName", "c"}, mapper2);
} catch (Exception e) {
e.printStackTrace();
}