Active Directory:将用户移动到不同的OU

时间:2013-05-07 20:47:24

标签: java active-directory ou

我正在开发一个需要创建和维护用户进入活动目录的应用程序。

我的问题是用户有一个层次结构,主人可以使用不同的密码到期值创建它们。我正在阅读这个,也许它可以使用OU,但我找不到一些关于它的代码示例。

也许存在一种更好的方式来满足要求,但不幸的是,这是我找到的唯一方法。

解决方案(对我有用)

创建专有名称(dn)时,必须将OU添加到值中。这是我做的代码:

protected String getDN(User user)
{
  //User name
  String dn = "CN=" + user.getLogin();

  //OU
  String ou;
  if (user.getPasswordExpirationTime() == 1)
    ou = "PJ1"; //one day
  else if (usuario.getPasswordExpirationTime() == 30)
    ou = "PJ30"; //thirty days
  else if (usuario.getPasswordExpirationTime() == 60)
    ou = "PJ60"; //sixty days
  else
    ou = "PJ90"; //default, ninety days

  dn += ",OU=" + ou;

  //Domain
  dn += ",DC=domain,DC=local";

  return dn;
}

1 个答案:

答案 0 :(得分:3)

以下是如何操作的示例:

String oldUserName = "CN=Albert Einstein,OU=Research,DC=antipodes,DC=com";
String newUserName = "CN=Albert Einstein,OU=Sales,DC=antipodes,DC=com";
// Create the initial directory context
LdapContext ctx = new InitialLdapContext(env,null);
// Move the user
ctx.rename(oldUserName,newUserName);

https://forums.oracle.com/forums/thread.jspa?threadID=1157099