Given a userId, this method will return the name/value HashMap containing the user profile information.
LDAP
public HashMap ldapIdSearch(String userId)
This single HashMap should be in the same format as the name/value HashMaps returned by ldapSearch(). This will only be called if ldapOverride() returns true.
This shows how when provided with a userId, information about that user is returned such as their name, company information, and any pre-defined user defined fields. Please note that this search stops when 1 match is found as there will only be 1 match per unique userID.
public HashMap ldapIdSearch (String userId) { HashMap nameVals1 = new HashMap(); DirContext ctx = null; NamingEnumeration results = null; try { String filter = "(" + Z.lu.LDAP_PRIMARYKEY + "=" + userId + ")"; String[] upsertFields = {Z.lu.LDAP_COMMONNAME, Z.lu.LDAP_GIVENNAME, Z.lu.LDAP_SURNAME, Z.lu.LDAP_EMAIL, Z.lu.LDAP_STREET, Z.lu.LDAP_PHONE, Z.lu.LDAP_POSTALCODE, Z.lu.LDAP_STATE, Z.lu.LDAP_CITY, Z.lu.LDAP_COUNTRY, Z.lu.LDAP_FAX, Z.lu.LDAP_TITLE}; // Specify the scope of the search // subtree: starts at the base entry and searches // everything below it, including the base entry SearchControls constraints = new SearchControls(); constraints.setSearchScope(SearchControls.SUBTREE_SCOPE); // Perform the actual search String dn = Z.lu.getInitMgrDn(); String password = Z.lu.getInitPswd(); ctx = this.getContext(dn, password); results = ctx.search(Z.lu.getInitSearchBase(), filter, constraints); // Now Stepping through the search results int count = 0; while (results != null && results.hasMore() && count 0) { tmp.append(", "); } tmp.append(((String) nEnum.next()).trim()); } } if (TextManager.isStringInvisible(tmp.toString()) ) { tmp = new StringBuffer(LdapUtil.NA); } nameVals1.put(upsertFields[i], tmp.toString()); } } } count++; } // If the count was 0 then no results were returned. // Send back a null HashMap otherwise Search ldap will assume // a user was found and attempt to insert a null record. if (count == 0) { nameVals1 = null; } } catch(Exception e) { Z.log.writeToLog(Z.log.ERROR, "UC: ldapIdSearch Exception: " + e); ErrorWriter.write(e, ErrorWriter.LOGERR); } finally { try { if (results != null) { results.close(); } if (ctx != null) { ctx.close(); } } catch (Exception e) { Z.log.writeToLog(Z.log.ERROR, "UC: ldapIdSearch Exception: " + "Could not close context or results - " + e); ErrorWriter.write(e, ErrorWriter.LOGERR); } } return nameVals1; }