/** * Gives the members, in the ldap, that are corresponding to the logic definition of a group. * * @param definition The logic definition of the members of the group. * @return The set of the members ids. * @see * org.esco.dynamicgroups.dao.ldap.IMembersFromDefinitionDAO#getMembers(DynamicGroupDefinition) */ public Set<String> getMembers(final DynamicGroupDefinition definition) { final Set<String> userIds = new HashSet<String>(); if (definition.isValid()) { checkConnection(); final String filter = translateToLdapFilter(definition); try { final LDAPSearchResults result = getConnection() .search( ldapParameters.getLdapSearchBase(), LDAPConnection.SCOPE_SUB, filter, uidAttributeArray, false, constraints); while (result.hasMore()) { final LDAPEntry entry = result.next(); userIds.add(entry.getAttribute(ldapParameters.getLdapUidAttribute()).getStringValue()); } } catch (LDAPException e) { LOGGER.error( "Error while trying to retrieve the members for the definition: " + definition + " - associated filter: " + filter); LOGGER.error(e, e); final String filter2 = translateToLdapFilter(definition); LOGGER.error("!!! Remove this message : " + filter2); } } return userIds; }
/** * Checks the bean injection. * * @throws Exception * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet() */ public void afterPropertiesSet() throws Exception { Assert.notNull( this.parametersProvider, "The property parametersProvider in the class " + this.getClass().getName() + " can't be null."); Assert.notNull( this.connectionManager, "The property connectionManager in the class " + this.getClass().getName() + " can't be null."); ldapParameters = (PersonsParametersSection) parametersProvider.getPersonsParametersSection(); uidAttributeArray = new String[] {ldapParameters.getLdapUidAttribute()}; connection = connectionManager.connect(); constraints = new LDAPSearchConstraints(); constraints.setMaxResults(0); }