javax.naming.directory.DirContext#rename ( )源码实例Demo

下面列出了javax.naming.directory.DirContext#rename ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: projectforge-webapp   文件: LdapDao.java
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);
  }
}
 
源代码2 项目: projectforge-webapp   文件: LdapDao.java
public void rename(final DirContext ctx, final T obj, final T oldObj) throws NamingException
{
  final String newDnIdentifier = buildDnIdentifier(obj);
  final String oldDnIdentifier = buildDnIdentifier(oldObj);
  if (StringUtils.equals(newDnIdentifier, oldDnIdentifier) == true) {
    // Nothing to rename.
    return;
  }
  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 rename the object: "
        + obj);
  }
  final String ou = LdapUtils.getOu(origObject.getOrganizationalUnit());
  log.info("Rename object with id '" + obj.getId() + "' from '" + oldDnIdentifier + "' to '" + newDnIdentifier);
  ctx.rename(oldDnIdentifier + "," + ou, newDnIdentifier + "," + ou);
}
 
源代码3 项目: openbd-core   文件: ldapConnection.java
/**
 * modifies the dn to the one provided by the attributes.
 * No attempt is made to verify the attributes are valid i.e
 * in the format dn = ....
 */

public void modifyDN() throws NamingException{
  DirContext ctx = new InitialDirContext(env);
  ctx.rename(dn, attributes[0]);
  ctx.close();

}
 
源代码4 项目: scriptella-etl   文件: LdifScript.java
/**
 * Adds/modifies ctx using entry information.
 *
 * @param ctx directory context to use for change.
 * @param e   entry with change description.
 * @throws NamingException if operation with directory failed.
 */
static void modify(DirContext ctx, final Entry e) throws NamingException {
    if (LOG.isLoggable(Level.FINE)) {
        LOG.fine("Processing " + e);
    }
    Attributes atts = e.getAttributes();
    final String rootDn = ctx.getNameInNamespace();
    if (atts != null) { //If add entry
        ctx.createSubcontext(getRelativeDN(rootDn, e.getDn()), e.getAttributes());
    } else if (e.isChangeDelete()) {
        ctx.destroySubcontext(getRelativeDN(rootDn, e.getDn()));
    } else if (e.isChangeModDn() || e.isChangeModRdn()) {
        Name newRdn;
        if (e.getNewSuperior() != null) { //If new superior
            newRdn = getRelativeDN(rootDn, e.getNewSuperior());
        } else { //otherwise use DN as a base
            newRdn = getRelativeDN(rootDn, e.getDn());
            newRdn.remove(newRdn.size() - 1);
        }
        newRdn.add(e.getNewRdn());
        ctx.addToEnvironment("java.naming.ldap.deleteRDN", String.valueOf(e.isDeleteOldRdn()));
        ctx.rename(getRelativeDN(rootDn, e.getDn()), newRdn);
        ctx.removeFromEnvironment("java.naming.ldap.deleteRDN");//a better solution to use the previous value

    } else {
        List<ModificationItem> items = e.getModificationItems();
        ctx.modifyAttributes(getRelativeDN(rootDn, e.getDn()),
                items.toArray(new ModificationItem[items.size()]));
    }
}
 
源代码5 项目: jeecg   文件: LdapUtil.java
/**
 * 重命名节点
 * 
 * @param oldDN
 * @param newDN
 * @return
 */
public static boolean renameEntry(String oldDN, String newDN, DirContext dc) {
	try {
		dc.rename(oldDN, newDN);
		return true;
	} catch (NamingException ne) {
		System.err.println("Error: " + ne.getMessage());
		return false;
	}
}