public static String getOrganizationalUnit(final String dn, final String ouBase) { if (StringUtils.isNotBlank(ouBase) == true) { return getOrganizationalUnit(dn + "," + ouBase); } else { return getOrganizationalUnit(dn); } }
String getUserPath() { if (userPath == null) { userPath = LdapUtils.getOrganizationalUnit(ldapConfig.getUserBase()); } return userPath; }
String getGroupPath() { if (groupPath == null) { groupPath = LdapUtils.getOrganizationalUnit(ldapConfig.getGroupBase()); } return groupPath; }
@Test public void organizationalUnit() { assertNull(LdapUtils.getOrganizationalUnit(null)); assertNull(LdapUtils.getOrganizationalUnit(null, null)); assertNull(LdapUtils.getOrganizationalUnit(null, "")); assertNull(LdapUtils.getOrganizationalUnit("cn=hurzel")); assertNull(LdapUtils.getOrganizationalUnit("cn=hurzel", null)); assertNull(LdapUtils.getOrganizationalUnit("cn=hurzel", "")); assertEquals("ou=users", LdapUtils.getOrganizationalUnit("cn=hurzel,ou=users", "")); assertEquals("ou=users", LdapUtils.getOrganizationalUnit("cn=hurzel", "ou=users")); assertEquals("ou=intern,ou=users", LdapUtils.getOrganizationalUnit("cn=hurzel,ou=intern,ou=users", "")); assertEquals("ou=intern,ou=users", LdapUtils.getOrganizationalUnit("cn=hurzel,ou=intern", "ou=users")); assertEquals("ou=intern,ou=users", LdapUtils.getOrganizationalUnit("cn=hurzel", "ou=intern,ou=users")); }
protected T mapToObject(final String dn, final String ouBase, final Attributes attributes) throws NamingException { String fullDn; if (StringUtils.isNotBlank(ouBase) == true) { fullDn = dn + "," + ouBase; } else { fullDn = dn; } final T obj = mapToObject(fullDn, attributes); obj.setDn(fullDn); obj.setOrganizationalUnit(LdapUtils.getOrganizationalUnit(dn, ouBase)); obj.setCommonName(LdapUtils.getAttributeStringValue(attributes, "cn")); obj.setObjectClasses(LdapUtils.getAttributeStringValues(attributes, "objectClass")); return obj; }
public void move(final DirContext ctx, final T obj, final String newOrganizationalUnit) throws NamingException { final Object id = getId(obj); // The dn is may-be changed, so find the original dn by id: final T origObject = findById(id, obj.getOrganizationalUnit()); if (origObject == null) { throw new RuntimeException("Object with id " + id + " not found in search base '" + StringHelper.listToString(",", obj.getOrganizationalUnit()) + "'. Can't move the object: " + obj); } final String ou = LdapUtils.getOrganizationalUnit(newOrganizationalUnit); final String origOu = LdapUtils.getOu(origObject.getOrganizationalUnit()); if (StringUtils.equals(origOu, ou) == false) { log.info("Move object with id '" + obj.getId() + "' from '" + origOu + "' to '" + ou); final String dnIdentifier = buildDnIdentifier(obj); ctx.rename(dnIdentifier + "," + origOu, dnIdentifier + "," + ou); } }