Example usage for javax.naming.directory SearchControls SearchControls

List of usage examples for javax.naming.directory SearchControls SearchControls

Introduction

In this page you can find the example usage for javax.naming.directory SearchControls SearchControls.

Prototype

public SearchControls() 

Source Link

Document

Constructs a search constraints using defaults.

Usage

From source file:org.georchestra.console.ds.AccountDaoImpl.java

/**
 * @see {@link AccountDao#findAll()}//from   ww w  .j  ava2 s .  c  o  m
 */
@Override
public List<Account> findAll() throws DataServiceException {
    SearchControls sc = new SearchControls();
    sc.setReturningAttributes(UserSchema.ATTR_TO_RETRIEVE);
    sc.setSearchScope(SearchControls.SUBTREE_SCOPE);
    EqualsFilter filter = new EqualsFilter("objectClass", "person");
    return ldapTemplate.search(DistinguishedName.EMPTY_PATH, filter.encode(), sc, attributMapper);
}

From source file:org.pentaho.test.platform.plugin.services.security.userrole.ldap.DefaultLdapUserRoleListServiceTest.java

/**
 * Same as above except sorted./*from   w  ww  . j  a  v a2  s  .  com*/
 */
@Test
public void testGetAllUserNames1Sorted() throws Exception {
    SearchControls con1 = new SearchControls();
    con1.setReturningAttributes(new String[] { "uniqueMember" }); //$NON-NLS-1$

    LdapSearchParamsFactoryImpl paramFactory = new LdapSearchParamsFactoryImpl("ou=groups", //$NON-NLS-1$
            "(objectClass=groupOfUniqueNames)", con1); //$NON-NLS-1$
    paramFactory.afterPropertiesSet();

    Transformer transformer1 = new SearchResultToAttrValueList("uniqueMember", "uid"); //$NON-NLS-1$ //$NON-NLS-2$

    GenericLdapSearch allUsernamesSearch = new GenericLdapSearch(getContextSource(), paramFactory,
            transformer1);
    allUsernamesSearch.afterPropertiesSet();

    DefaultLdapUserRoleListService userRoleListService = getDefaultLdapUserRoleListService();

    userRoleListService.setAllUsernamesSearch(allUsernamesSearch);
    userRoleListService.setUsernameComparator(new DefaultUsernameComparator());

    List res = userRoleListService.getAllUsers();

    assertTrue(res.indexOf("pat") < res.indexOf("tiffany"));

    if (logger.isDebugEnabled()) {
        logger.debug("results of getAllUserNames1Sorted(): " + res); //$NON-NLS-1$
    }
}

From source file:org.pegadi.server.user.LDAPUserServerImpl.java

/**
 * @param roleID the ID of a role/*from  www. j a v  a 2  s. com*/
 * @param user   the user
 * @return <code>true</code> if the user has that role.
 */
public boolean hasRole(int roleID, Person user) {
    String dn = this.getDN(user.getUsername());
    try {
        SearchControls sc = new SearchControls();
        NamingEnumeration e = ctx.search("ou=roles", "(&(roleID=" + roleID + ")(member=" + dn + "))", sc);
        if (e.hasMore())
            return true;

    } catch (NamingException er) {
        log.error("Error checking for role: " + roleID + "for user" + user.getUsername(), er);
    } catch (Exception e) {
        log.error("Something else", e);
    }
    return false;
}

From source file:no.smint.anthropos.ldap.LDAP.java

public static PersonList retrieve() throws NamingException {
    Hashtable<String, Object> env = config();

    DirContext ctx = new InitialDirContext(env);

    //Search controller
    SearchControls ctls = new SearchControls();

    //The actual search
    NamingEnumeration answer = ctx.search("ou=Users,dc=studentmediene,dc=no", "(&(memberOf=*))", ctls);

    ctx.close();/*from  w w w. j a v a2  s . c o  m*/
    return SearchProcessing.getPersons(answer);
}

From source file:org.georchestra.console.ds.AccountDaoImpl.java

@Override
public List<Account> find(final ProtectedUserFilter filterProtected, Filter f) {
    SearchControls sc = new SearchControls();
    sc.setReturningAttributes(UserSchema.ATTR_TO_RETRIEVE);
    sc.setSearchScope(SearchControls.SUBTREE_SCOPE);
    AndFilter and = new AndFilter();
    and.and(new EqualsFilter("objectClass", "person"));
    and.and(f);//from  w w  w .  ja  va2  s  . com
    List<Account> l = ldapTemplate.search(DistinguishedName.EMPTY_PATH, and.encode(), sc, attributMapper);
    return filterProtected.filterUsersList(l);
}

From source file:com.googlecode.fascinator.authentication.custom.ldap.CustomLdapAuthenticationHandler.java

/**
 * Performs a search of LDAP//from w  w w.  j a v a2s  . c  o m
 * 
 * @param username
 *            The username to be used in the search
 * @param dc
 *            The directory context to use for the search
 * @return An enumeration containing the search results
 * @throws NamingException
 */
private NamingEnumeration<SearchResult> performLdapSearch(String username, DirContext dc)
        throws NamingException {
    SearchControls sc = new SearchControls();
    sc.setSearchScope(SearchControls.SUBTREE_SCOPE);

    String filter = "(" + filterPrefix + idAttr + "=" + username + filterSuffix + ")";

    NamingEnumeration<SearchResult> ne = dc.search(baseDn, filter, sc);
    log.trace(String.format("performing LDAP search using baseDn: %s, filter: %s", baseDn, filter));
    return ne;
}

From source file:org.apache.geronimo.security.realm.providers.GenericHttpHeaderLdapLoginModule.java

protected ArrayList<String> getRoles(DirContext context, String dn, String username, ArrayList<String> list)
        throws NamingException {
    if (list == null) {
        list = new ArrayList<String>();
    }/*w ww .j a  v  a2  s  .  c  om*/
    if (roleName == null || "".equals(roleName)) {
        return list;
    }
    String filter = roleSearchMatchingFormat.format(new String[] { doRFC2254Encoding(dn), username });

    SearchControls constraints = new SearchControls();
    if (roleSearchSubtreeBool) {
        constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
    } else {
        constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE);
    }
    NamingEnumeration results = context.search(roleBase, filter, constraints);
    while (results.hasMore()) {
        SearchResult result = (SearchResult) results.next();
        Attributes attrs = result.getAttributes();
        if (attrs == null) {
            continue;
        }
        list = addAttributeValues(roleName, attrs, list);
    }
    return list;
}

From source file:ldap.SearchUtility.java

public boolean checkPassword(String DN, String pwdAtt, String value, DirContext context)
        throws NamingException, UnsupportedEncodingException {
    SearchControls ctls = new SearchControls();
    ctls.setReturningAttributes(new String[0]); // Return no attrs
    ctls.setSearchScope(SearchControls.OBJECT_SCOPE); // Search object only
    //byte[] pwdBytes = value.getBytes("UTF-8");
    byte[] pwdBytes = value.getBytes(LdapConstants.UTF8);

    // Invoke search method that will use the LDAP "compare" operation
    NamingEnumeration answer = context.search(DN, "(" + pwdAtt + "={0})", new Object[] { pwdBytes }, ctls);
    return answer.hasMore();
}

From source file:org.olat.ldap.LDAPLoginManagerImpl.java

/**
 * Find the user dn with its uid/* w w w .  j  a  v  a  2s  . co  m*/
 * 
 * @param uid
 * @param ctx
 * @return user's dn
 */
private String searchUserDN(final String uid, final DirContext ctx) {
    if (ctx == null) {
        return null;
    }

    final List<String> ldapBases = LDAPLoginModule.getLdapBases();
    final String objctClass = LDAPLoginModule.getLdapUserObjectClass();
    final String[] serachAttr = { "dn" };

    final String ldapUserIDAttribute = LDAPLoginModule
            .mapOlatPropertyToLdapAttribute(LDAPConstants.LDAP_USER_IDENTIFYER);
    final String filter = "(&(objectClass=" + objctClass + ")(" + ldapUserIDAttribute + "=" + uid + "))";
    final SearchControls ctls = new SearchControls();
    ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
    ctls.setReturningAttributes(serachAttr);

    String userDN = null;
    for (final String ldapBase : ldapBases) {
        try {
            final NamingEnumeration<SearchResult> enm = ctx.search(ldapBase, filter, ctls);
            while (enm.hasMore()) {
                final SearchResult result = enm.next();
                userDN = result.getNameInNamespace();
            }
            if (userDN != null) {
                break;
            }
        } catch (final NamingException e) {
            logError("NamingException when trying to bind user with username::" + uid + " on ldapBase::"
                    + ldapBase, e);
        }
    }

    return userDN;
}

From source file:org.infoscoop.account.ldap.LDAPAccountManager.java

private List searchGroupMember(DirContext context, Map filters) throws NamingException {

    SearchControls searchControls = new SearchControls();
    searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);

    Set userList = new HashSet();
    String filter = buildFilter(filters);
    if (log.isInfoEnabled())
        log.info("Search User from " + userBase + " by " + filter);
    NamingEnumeration searchResultEnum = context.search(this.groupBase, filter, searchControls);

    while (searchResultEnum.hasMore()) {
        SearchResult searchResult = (SearchResult) searchResultEnum.next();
        Attributes attrs = searchResult.getAttributes();
        String dn = searchResult.getName() + "," + groupBase;
        String uniquememberAttrName = "uniqueMember";
        if (this.propAttrMap.containsKey("org_member")) {
            try {
                uniquememberAttrName = (String) this.propAttrMap.get("org_member");
            } catch (Exception ex) {
                //ignore
            }/*from   www .ja v  a 2 s .  c  o  m*/
        }
        Attribute uniquememberAttr = attrs.get(uniquememberAttrName);
        if (uniquememberAttr == null)
            continue;
        NamingEnumeration memberDNs = uniquememberAttr.getAll();
        while (memberDNs.hasMoreElements()) {
            //System.out.println(memberDNs[j]);
            userList.add(memberDNs.next());//DN of user
        }
    }

    List members = new ArrayList();

    for (Iterator userDns = userList.iterator(); userDns.hasNext();) {

        /* Next directory entry */
        String userDn = (String) userDns.next();
        Attributes userEntry = null;
        try {
            userEntry = context.getAttributes(userDn);//DN of user
        } catch (Exception e) {
            log.error(userDn + ": " + e.getMessage());
        }
        if (userEntry == null)
            continue;

        LDAPAccount user = createLDAPUser(userDn, userEntry);
        if (user.getUid() == null)
            continue;

        members.add(user);

    }

    return members;

}