/** * Sets the corresponding property on the {@link SearchControls} instance used in the * search. * * @param deref the derefLinkFlag value as defined in SearchControls.. */ public void setDerefLinkFlag(boolean deref) { searchControls.setDerefLinkFlag(deref); }
/** * Sets the corresponding property on the {@link SearchControls} instance used in the * search. * * @param deref the derefLinkFlag value as defined in SearchControls.. */ public void setDerefLinkFlag(boolean deref) { searchControls.setDerefLinkFlag(deref); }
/** * Sets the corresponding property on the {@link SearchControls} instance used in the search. * * @param deref the derefLinkFlag value as defined in SearchControls.. */ public void setDerefLinkFlag(boolean deref) { searchControls.setDerefLinkFlag(deref); }
/** * Sets the corresponding property on the {@link SearchControls} instance used in the search. * * @param deref the derefLinkFlag value as defined in SearchControls.. */ public void setDerefLinkFlag(boolean deref) { searchControls.setDerefLinkFlag(deref); }
private List<Map<String, Object>> search(String base, String filter) { try { SearchControls sc = new SearchControls(); sc.setSearchScope(SearchControls.SUBTREE_SCOPE); sc.setDerefLinkFlag(false); NamingEnumeration results = getBaseContext().search(base, filter, sc); List<Map<String, Object>> result = new ArrayList<>(); while (results.hasMore()) { Map<String, Object> item = new HashMap<>(); result.add(item); SearchResult oneRes = (SearchResult) results.next(); NamingEnumeration<? extends Attribute> fields = (oneRes.getAttributes().getAll()); for (Attribute a = fields.next(); fields.hasMore(); a = fields.next()) { item.put(a.getID(), a.get()); } } return result; } catch (Exception e) { throw new RuntimeException("Search failed: searchBase=" + base + " filter=" + filter, e); } }
private SearchResult findUser(String username) throws NamingException, LoginException { SearchControls ctls = new SearchControls(); ctls.setCountLimit(1); ctls.setDerefLinkFlag(true); ctls.setSearchScope(SearchControls.SUBTREE_SCOPE); String filter = "(&(objectClass={0})({1}={2}))"; LOG.info("Searching for users with filter: \'" + filter + "\'" + " from base dn: " + _userBaseDn); Object[] filterArguments = new Object[]{ _userObjectClass, _userIdAttribute, username }; NamingEnumeration<SearchResult> results = _rootContext.search(_userBaseDn, filter, filterArguments, ctls); LOG.info("Found user?: " + results.hasMoreElements()); if (!results.hasMoreElements()) { throw new LoginException("User not found."); } return (SearchResult) results.nextElement(); }
/** * Find user with specified name. * * @param ctx {@link LdapContext} * @param username user name * @param hasAttribute has object some external attributes to be used for * searching * @return {@link NamingEnumeration} with search results * @throws NamingException if any {@link NamingException} occurs */ private NamingEnumeration<SearchResult> findUser(LdapContext ctx, String username, boolean hasAttribute) throws NamingException { SearchControls constraints = new SearchControls(); constraints.setSearchScope(SearchControls.SUBTREE_SCOPE); if (!hasAttribute) { constraints.setReturningAttributes(new String[]{""}); constraints.setDerefLinkFlag(true); } String filter = "(&(" + ldapAttrMapping.userUsernameAttr + "=" + username + ")" + "(" + ldapAttrMapping.userObjectClassFilter + "))"; return ctx.search(ldapAttrMapping.userURL, filter, constraints); }
ctls.setDerefLinkFlag(true); ctls.setSearchScope(SearchControls.SUBTREE_SCOPE); ctls.setReturningAttributes(new String[]{_roleNameAttribute});
private SearchResult findUser(String username) throws NamingException, LoginException { SearchControls ctls = new SearchControls(); ctls.setCountLimit(1); ctls.setDerefLinkFlag(true); ctls.setSearchScope(SearchControls.SUBTREE_SCOPE); String filter = "(&(objectClass={0})({1}={2}))"; LOG.info("Searching for users with filter: \'" + filter + "\'" + " from base dn: " + _userBaseDn); Object[] filterArguments = new Object[]{ _userObjectClass, _userIdAttribute, username }; NamingEnumeration<SearchResult> results = _rootContext.search(_userBaseDn, filter, filterArguments, ctls); LOG.info("Found user?: " + results.hasMoreElements()); if (!results.hasMoreElements()) { throw new LoginException("User not found."); } return (SearchResult) results.nextElement(); }
sc.setDerefLinkFlag(false); sc.setReturningAttributes(new String[] { attribute }); sc.setSearchScope(SearchControls.OBJECT_SCOPE);
sc.setDerefLinkFlag(false); sc.setReturningAttributes(new String[] { attribute }); sc.setSearchScope(SearchControls.OBJECT_SCOPE);
private List<String> doGetDnList(final String base, final String filter, final int scope) throws NamingException { NamingEnumeration<SearchResult> ne = null; List<String> iist = new ArrayList<String>(); try { SearchControls sc = new SearchControls(); sc.setDerefLinkFlag(false); sc.setReturningAttributes(new String[]{"1.1"}); sc.setSearchScope(scope); sc.setReturningObjFlag(true); ne = ctx.search(base, filter, sc); String completedBaseDn = ""; if (base.length() > 0) { completedBaseDn = "," + base; } while (ne.hasMoreElements()) { iist.add(((SearchResult) ne.next()).getName() + completedBaseDn); } } catch (NamingException e) { LOGGER.error(e.toString()); LOGGER.debug(e.toString(), e); throw e; } return iist; }
protected NamingEnumeration<SearchResult> searchUsers( DirContext context, String[] returnAttributes, LdapUserQuery query ) throws NamingException { if ( query == null ) { query = new LdapUserQuery(); } SearchControls ctls = new SearchControls(); ctls.setDerefLinkFlag( true ); ctls.setSearchScope( SearchControls.SUBTREE_SCOPE ); ctls.setReturningAttributes( mapper.getReturningAttributes() ); ctls.setCountLimit( ( ( LdapUserMapper ) mapper ).getMaxResultCount() ); String finalFilter = "(&(objectClass=" + mapper.getUserObjectClass() + ")" + ( mapper.getUserFilter() != null ? mapper.getUserFilter() : "" ) + query.getLdapFilter(mapper) + ")"; log.info( "Searching for users with filter: \'{}\'" + " from base dn: {}",finalFilter, mapper.getUserBaseDn() ); return context.search( mapper.getUserBaseDn(), finalFilter, ctls ); }
@Override public NamingEnumeration<SearchResult> searchUsers(String username, LdapContext context, String[] returnAttributes, LdapAuthConfiguration configuration, long limitCount) throws NamingException { String[] userAttributes = returnAttributes; if (userAttributes == null) { userAttributes = configuration.getUserAttributes(); } SearchControls ctls = new SearchControls(); ctls.setDerefLinkFlag(true); ctls.setSearchScope(configuration.isUserSubtree() ? SearchControls.SUBTREE_SCOPE : SearchControls.ONELEVEL_SCOPE); ctls.setReturningAttributes(userAttributes); if (limitCount > 0) { ctls.setCountLimit(limitCount); } String f = configuration.getLdapFilter(); log.debug("Specific filter rule: \"" + (f != null ? f : "none") + "\""); String filter = "(&(objectClass=" + configuration.getUserObjectClass() + ")(" + configuration.getUserIdAttribute() + "=" + (username != null ? username : "*") + ")" + (f != null && !f.isEmpty() ? "(" + f + ")" : "") + ")"; log.debug("Searching for users with filter: \'" + filter + "\'"); String baseDN = StringUtils.defaultString(configuration.getUserBaseDn(), ""); return context.search(baseDN, filter, ctls); }
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE); constraints.setReturningAttributes(new String[]{""}); constraints.setDerefLinkFlag(true);
public NamingEnumeration<SearchResult> searchUsers( String username, LdapContext context, String[] returnAttributes, LdapAuthConfiguration configuration, long limitCount ) throws NamingException { String[] userAttributes = returnAttributes; if ( userAttributes == null ) { userAttributes = configuration.getUserAttributes(); } SearchControls ctls = new SearchControls(); ctls.setDerefLinkFlag( true ); ctls.setSearchScope( configuration.isUserSubtree() ? SearchControls.SUBTREE_SCOPE : SearchControls.ONELEVEL_SCOPE ); ctls.setReturningAttributes( userAttributes ); if ( limitCount > 0 ) { ctls.setCountLimit( limitCount ); } String f = configuration.getLdapFilter(); getLogger().debug("Specific filter rule: \"" + ( f != null ? f : "none" ) + "\""); String filter = "(&(objectClass=" + configuration.getUserObjectClass() + ")(" + configuration.getUserIdAttribute() + "=" + ( username != null ? username : "*" ) + ")" + ( f != null && !f.isEmpty() ? "(" + f + ")" : "" ) + ")"; getLogger().debug( "Searching for users with filter: \'" + filter + "\'" ); String baseDN = StringUtils.defaultString( configuration.getUserBaseDn(), "" ); return context.search( baseDN, filter, ctls ); }
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE); constraints.setDerefLinkFlag(true); ldapDao.setSearchControls(constraints);
/** * Returns a search controls object configured with the supplied search request. * * @param sr search request containing configuration to create search controls * * @return search controls */ protected SearchControls getSearchControls(final SearchRequest sr) { final SearchControls ctls = new SearchControls(); if (ReturnAttributes.DEFAULT.equalsAttributes(sr.getReturnAttributes())) { ctls.setReturningAttributes(null); } else { ctls.setReturningAttributes(sr.getReturnAttributes()); } final int searchScope = getSearchScope(sr.getSearchScope()); if (searchScope != -1) { ctls.setSearchScope(searchScope); } ctls.setTimeLimit(Long.valueOf(sr.getTimeLimit()).intValue()); ctls.setCountLimit(sr.getSizeLimit()); ctls.setDerefLinkFlag(false); // note that if returning obj flag is set to true, object contexts on the // SearchResult must the explicitly closed: // ctx = (Context) SearchResult#getObject(); ctx.close(); ctls.setReturningObjFlag(false); return ctls; }
/** * Returns a search controls object configured with the supplied search request. * * @param sr search request containing configuration to create search controls * * @return search controls */ protected SearchControls getSearchControls(final SearchRequest sr) { final SearchControls ctls = new SearchControls(); if (ReturnAttributes.DEFAULT.equalsAttributes(sr.getReturnAttributes())) { ctls.setReturningAttributes(null); } else { ctls.setReturningAttributes(sr.getReturnAttributes()); } final int searchScope = getSearchScope(sr.getSearchScope()); if (searchScope != -1) { ctls.setSearchScope(searchScope); } ctls.setTimeLimit((int) sr.getTimeLimit().toMillis()); ctls.setCountLimit(sr.getSizeLimit()); ctls.setDerefLinkFlag(false); // note that if returning obj flag is set to true, object contexts on the // SearchResult must the explicitly closed: // ctx = (Context) SearchResult#getObject(); ctx.close(); ctls.setReturningObjFlag(false); return ctls; }
/** * Returns a search controls object configured with the supplied search request. * * @param sr search request containing configuration to create search controls * * @return search controls */ protected SearchControls getSearchControls(final SearchRequest sr) { final SearchControls ctls = new SearchControls(); if (ReturnAttributes.DEFAULT.equalsAttributes(sr.getReturnAttributes())) { ctls.setReturningAttributes(null); } else { ctls.setReturningAttributes(sr.getReturnAttributes()); } final int searchScope = getSearchScope(sr.getSearchScope()); if (searchScope != -1) { ctls.setSearchScope(searchScope); } ctls.setTimeLimit((int) sr.getTimeLimit().toMillis()); ctls.setCountLimit(sr.getSizeLimit()); ctls.setDerefLinkFlag(false); // note that if returning obj flag is set to true, object contexts on the // SearchResult must the explicitly closed: // ctx = (Context) SearchResult#getObject(); ctx.close(); ctls.setReturningObjFlag(false); return ctls; }