@Override protected Object call() throws NameNotFoundException, Exception { NamingEnumeration<?> results = null; final SearchControls controls = new SearchControls(); controls.setSearchScope(SearchControls.SUBTREE_SCOPE); final String searchBase = getSearchBase(organizationalUnits); results = ctx.search(searchBase, "(&(objectClass=" + getObjectClass() + ")(uid=" + username + "))", controls); if (results.hasMore() == false) { return null; } final SearchResult searchResult = (SearchResult) results.next(); final String dn = searchResult.getName(); final Attributes attributes = searchResult.getAttributes(); if (results.hasMore() == true) { log.error("Oups, found entries with multiple id's: " + getObjectClass() + "." + username); } return mapToObject(dn, searchBase, attributes); } }.excecute();
public void changeWlanPassword(final LdapUser user, final String newPassword) { final String sambaPasswordAttributeId = "sambaNTPassword"; if (isSambaAccountsConfigured() == false) { log.error("Could not change attribute " + sambaPasswordAttributeId + " because the samba accounts are not configured."); return; } if (user.getSambaSIDNumber() == null) { log.error("Could not change attribute " + sambaPasswordAttributeId + " because the sambaSID is null."); return; } log.info("Change attribute " + sambaPasswordAttributeId + " for " + getObjectClass() + ": " + buildDn(null, user)); final String sambaNTPassword = SmbEncrypt.NTUNICODEHash(newPassword); final ModificationItem modItem = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute(sambaPasswordAttributeId, sambaNTPassword)); // Perform the update modify(user, Collections.singletonList(modItem)); }
public void changePassword(final LdapUser user, final String oldPassword, final String newPassword) { final String userPasswordId = "userPassword"; log.info("Change attribute " + userPasswordId + " for " + getObjectClass() + ": " + buildDn(null, user)); final List<ModificationItem> modificationItems = new ArrayList<>(); if (oldPassword != null) { modificationItems .add(new ModificationItem(DirContext.REMOVE_ATTRIBUTE, new BasicAttribute(userPasswordId, oldPassword))); modificationItems .add(new ModificationItem(DirContext.ADD_ATTRIBUTE, new BasicAttribute(userPasswordId, newPassword))); } else { modificationItems .add(new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute(userPasswordId, newPassword))); } // Perform the update modify(user, modificationItems); }
if (user.getObjectClasses() != null) { final List<String> missedObjectClasses = LdapUtils.getMissedObjectClasses(getAdditionalObjectClasses(user), getObjectClass(), user.getObjectClasses()); if (CollectionUtils.isNotEmpty(missedObjectClasses) == true) {