@Test public void activeDirectory() { Settings settings = new Settings() .setProperty("ldap.user.baseDn", "cn=users") .setProperty("ldap.user.objectClass", "user") .setProperty("ldap.user.loginAttribute", "sAMAccountName"); LdapUserMapping userMapping = new LdapUserMapping(settings); LdapSearch search = userMapping.createSearch(null, "tester"); assertThat(search.getBaseDn(), equalTo("cn=users")); assertThat(search.getRequest(), equalTo("(&(objectClass=user)(sAMAccountName={0}))")); assertThat(search.getParameters(), equalTo(new String[] {"tester"})); assertThat(search.getReturningAttributes(), equalTo(null)); assertThat( userMapping.toString(), equalTo( "LdapUserMapping{" + "baseDn=cn=users," + " objectClass=user," + " loginAttribute=sAMAccountName," + " realNameAttribute=cn," + " emailAttribute=mail}")); }
@Test public void subtreeSearch() throws Exception { LdapSearch search = new LdapSearch(contextFactory) .setBaseDn("dc=example,dc=org") .setRequest("(objectClass={0})") .setParameters("inetOrgPerson") .returns("objectClass"); assertThat(search.getBaseDn(), is("dc=example,dc=org")); assertThat(search.getScope(), is(SearchControls.SUBTREE_SCOPE)); assertThat(search.getRequest(), is("(objectClass={0})")); assertThat(search.getParameters(), is(new String[] {"inetOrgPerson"})); assertThat(search.getReturningAttributes(), is(new String[] {"objectClass"})); assertThat( search.toString(), is( "LdapSearch{baseDn=dc=example,dc=org, scope=subtree, request=(objectClass={0}), parameters=[inetOrgPerson], attributes=[objectClass]}")); assertThat(Iterators.size(Iterators.forEnumeration(search.find())), is(3)); thrown.expect(NamingException.class); thrown.expectMessage("Non unique result for " + search.toString()); search.findUnique(); }
@Test public void objectSearch() throws Exception { LdapSearch search = new LdapSearch(contextFactory) .setBaseDn("cn=bind,ou=users,dc=example,dc=org") .setScope(SearchControls.OBJECT_SCOPE) .setRequest("(objectClass={0})") .setParameters("uidObject") .returns("uid"); assertThat(search.getBaseDn(), is("cn=bind,ou=users,dc=example,dc=org")); assertThat(search.getScope(), is(SearchControls.OBJECT_SCOPE)); assertThat(search.getRequest(), is("(objectClass={0})")); assertThat(search.getParameters(), is(new String[] {"uidObject"})); assertThat(search.getReturningAttributes(), is(new String[] {"uid"})); assertThat( search.toString(), is( "LdapSearch{baseDn=cn=bind,ou=users,dc=example,dc=org, scope=object, request=(objectClass={0}), parameters=[uidObject], attributes=[uid]}")); assertThat(Iterators.size(Iterators.forEnumeration(search.find())), is(1)); assertThat(search.findUnique(), not(nullValue())); }
@Test public void oneLevelSearch() throws Exception { LdapSearch search = new LdapSearch(contextFactory) .setBaseDn("dc=example,dc=org") .setScope(SearchControls.ONELEVEL_SCOPE) .setRequest("(objectClass={0})") .setParameters("inetOrgPerson") .returns("cn"); assertThat(search.getBaseDn(), is("dc=example,dc=org")); assertThat(search.getScope(), is(SearchControls.ONELEVEL_SCOPE)); assertThat(search.getRequest(), is("(objectClass={0})")); assertThat(search.getParameters(), is(new String[] {"inetOrgPerson"})); assertThat(search.getReturningAttributes(), is(new String[] {"cn"})); assertThat( search.toString(), is( "LdapSearch{baseDn=dc=example,dc=org, scope=onelevel, request=(objectClass={0}), parameters=[inetOrgPerson], attributes=[cn]}")); assertThat(Iterators.size(Iterators.forEnumeration(search.find())), is(0)); assertThat(search.findUnique(), nullValue()); }