private Set<String> findLDAPGroupsForUser(final String userName, final LdapContext ldapCtx) throws NamingException { final NamingEnumeration<SearchResult> foundGroups = ldapCtx.search(searchBase, groupSearchFilter.replace(USERDN_SUBSTITUTION_TOKEN, userName), SUBTREE_SCOPE); if (!foundGroups.hasMoreElements()) { return ImmutableSet.<String>of(); } // There should really only be one entry final SearchResult result = foundGroups.next(); // Extract the name of all the groups final Collection<String> finalGroupsNames = Collections2.<String>filter(extractGroupNamesFromSearchResult(result), Predicates.notNull()); return Sets.newHashSet(finalGroupsNames); }
private String findUserDN(final String userName, final LdapContextFactory ldapContextFactory) { LdapContext systemLdapCtx = null; try { systemLdapCtx = ldapContextFactory.getSystemLdapContext(); final NamingEnumeration<SearchResult> usersFound = systemLdapCtx.search(searchBase, dnSearchFilter.replace(USERDN_SUBSTITUTION_TOKEN, userName), SUBTREE_SCOPE); return usersFound.hasMore() ? usersFound.next().getNameInNamespace() : null; } catch (final AuthenticationException ex) { log.info("LDAP authentication exception='{}'", ex.getLocalizedMessage()); throw new IllegalArgumentException(ex); } catch (final NamingException e) { log.info("LDAP exception='{}'", e.getLocalizedMessage()); throw new IllegalArgumentException(e); } finally { LdapUtils.closeContext(systemLdapCtx); } }
try { LdapContext ctx = new InitialLdapContext(env, null); ctx.setRequestControls(null); NamingEnumeration<?> namingEnum = ctx.search("ou=people,dc=example,dc=com", "(objectclass=user)", getSimpleSearchControls()); while (namingEnum.hasMore ()) { SearchResult result = (SearchResult) namingEnum.next (); Attributes attrs = result.getAttributes (); System.out.println(attrs.get("cn")); } namingEnum.close(); } catch (Exception e) { e.printStackTrace(); } private SearchControls getSimpleSearchControls() { SearchControls searchControls = new SearchControls(); searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); searchControls.setTimeLimit(30000); //String[] attrIDs = {"objectGUID"}; //searchControls.setReturningAttributes(attrIDs); return searchControls; }
NamingEnumeration answer = ldapContext.search(searchBase, searchFilter, searchArguments, searchCtls);
try { ldapContext = buildLdapContext(); ldapResult = ldapContext.search(context, filterExpr, filterArgs, createSearchControls()); while (ldapResult.hasMore()) { searchResults.add(ldapResult.next());
NamingEnumeration answer = ctx.search("", filter, searchControls);
NamingEnumeration answer = ctx.search("", filter, searchControls); while (answer.hasMoreElements()) {
userFilter.append(MessageFormat.format(manager.getSearchFilter(), "*")); userFilter.append(')'); NamingEnumeration usrAnswer = ctx.search("", userFilter.toString(), searchControls); if (usrAnswer != null && usrAnswer.hasMoreElements()) {
public LdapUser searchUser(final String basedn, final String searchString, final LdapContext context, Long domainId) throws NamingException, IOException { final SearchControls searchControls = new SearchControls(); searchControls.setSearchScope(_ldapConfiguration.getScope()); searchControls.setReturningAttributes(_ldapConfiguration.getReturnAttributes(domainId)); NamingEnumeration<SearchResult> results = context.search(basedn, searchString, searchControls); if(s_logger.isDebugEnabled()) { s_logger.debug("searching user(s) with filter: \"" + searchString + "\""); } final List<LdapUser> users = new ArrayList<LdapUser>(); while (results.hasMoreElements()) { final SearchResult result = results.nextElement(); users.add(createUser(result, domainId)); } if (users.size() == 1) { return users.get(0); } else { throw new NamingException("No user found for basedn " + basedn + " and searchString " + searchString); } }
private LdapUser getUserForDn(String userdn, LdapContext context, Long domainId) throws NamingException { final SearchControls controls = new SearchControls(); controls.setSearchScope(_ldapConfiguration.getScope()); controls.setReturningAttributes(_ldapConfiguration.getReturnAttributes(domainId)); NamingEnumeration<SearchResult> result = context.search(userdn, "(objectClass=" + _ldapConfiguration.getUserObject(domainId) + ")", controls); if (result.hasMoreElements()) { return createUser(result.nextElement(), domainId); } else { throw new NamingException("No user found for dn " + userdn); } }
@Override public List<LdapUser> getUsersInGroup(String groupName, LdapContext context, Long domainId) throws NamingException { if (StringUtils.isBlank(groupName)) { throw new IllegalArgumentException("ldap group name cannot be blank"); } String basedn = _ldapConfiguration.getBaseDn(domainId); if (StringUtils.isBlank(basedn)) { throw new IllegalArgumentException("ldap basedn is not configured"); } final SearchControls searchControls = new SearchControls(); searchControls.setSearchScope(_ldapConfiguration.getScope()); searchControls.setReturningAttributes(_ldapConfiguration.getReturnAttributes(domainId)); NamingEnumeration<SearchResult> results = context.search(basedn, generateADGroupSearchFilter(groupName, domainId), searchControls); final List<LdapUser> users = new ArrayList<LdapUser>(); while (results.hasMoreElements()) { final SearchResult result = results.nextElement(); users.add(createUser(result, domainId)); } return users; }
NamingEnumeration answer = ldapContext.search(searchBase, searchFilter, searchArguments, searchCtls);
@Override public List<LdapUser> getUsersInGroup(String groupName, LdapContext context, Long domainId) throws NamingException { String attributeName = _ldapConfiguration.getGroupUniqueMemberAttribute(domainId); final SearchControls controls = new SearchControls(); controls.setSearchScope(_ldapConfiguration.getScope()); controls.setReturningAttributes(new String[] {attributeName}); NamingEnumeration<SearchResult> result = context.search(_ldapConfiguration.getBaseDn(domainId), generateGroupSearchFilter(groupName, domainId), controls); final List<LdapUser> users = new ArrayList<LdapUser>(); //Expecting only one result which has all the users if (result.hasMoreElements()) { Attribute attribute = result.nextElement().getAttributes().get(attributeName); NamingEnumeration<?> values = attribute.getAll(); while (values.hasMoreElements()) { String userdn = String.valueOf(values.nextElement()); try{ users.add(getUserForDn(userdn, context, domainId)); } catch (NamingException e){ s_logger.info("Userdn: " + userdn + " Not Found:: Exception message: " + e.getMessage()); } } } Collections.sort(users); return users; }
NamingEnumeration<SearchResult> results; do { results = context.search(basedn, generateSearchFilter(username, domainId), searchControls); while (results.hasMoreElements()) { final SearchResult result = results.nextElement();
enumeration = initialContext.search(userBaseDn, filter, ldapConfiguration.getSearchControls());
enumeration = initialContext.search(baseDn, groupSearchFilter, ldapConfiguration.getSearchControls());
enumeration = initialContext.search(groupBaseDn, filter, ldapConfiguration.getSearchControls());
public String getDomainFromUpnSuffix( LdapContext ctx, String uPNSuffix ) { String filter = "(&(CN=Partitions)(uPNSuffixes=" + uPNSuffix + "))" ; // Find the configuration for this suffix NamingEnumeration<SearchResult> results = ctx.search( "", filter, null ); while ( results.hasMore() ) { SearchResult result = results.next(); return result.getNameInNamespace(); } return null; }