Active Directory: переместите пользователей в разные подразделения

Я разрабатываю приложение, которое должно создавать и поддерживать пользователей в активном каталоге.

Моя проблема в том, что у пользователей есть иерархия, и мастер может создавать их с разными значениями срока действия пароля. Я читал об этом, и, возможно, это можно сделать с помощью 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;
}

person geonunez    schedule 07.05.2013    source источник


Ответы (1)


Вот пример того, как это сделать:

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

person André Schild    schedule 07.05.2013