Невозможно создать группы, используя ldap через Java. Создание пользовательских работ - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь создать группу AD через мое приложение Java. Я успешно создал пользователя, и теперь я пытаюсь создать группу. У меня есть следующий код:

 public class ProjectActiveDirectoryUserGroupHandling extends ActiveDirectoryUserGroupHandling {

     private static final String DOMAIN_NAME = "DOM01.local";
     private static final String DOMAIN_ROOT = "DC=DOM01,DC=local";
     private static final String DOMAIN_URL  = "ldap://10.123.3.10";
     private static final String ADMIN_NAME  = "DOM01\\AdServiceUser";
     private static final String ADMIN_PASS  = "Password";

     private String              userName, firstName, lastName, password, organisationUnit, groupName, groupOU;
     private LdapContext         context;

     public void newGroup(String groupName, String organisationUnit) {
     this.groupName = groupName;
     this.groupOU = organisationUnit;
     Hashtable<String, String> env = new Hashtable<String, String>();

     env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");

     // set security credentials, note using simple cleartext authentication
     env.put(Context.SECURITY_AUTHENTICATION, "simple");
     env.put(Context.SECURITY_PRINCIPAL, ADMIN_NAME);
     env.put(Context.SECURITY_CREDENTIALS, ADMIN_PASS);

     // connect to my domain controller
     env.put(Context.PROVIDER_URL, DOMAIN_URL);

     try {
       this.context = new InitialLdapContext(env, null);
     } catch (NamingException e) {
       System.err.println("Problem creating object: ");
       e.printStackTrace();
     }
   }

   public boolean addGroup() throws NamingException {

     // Create a container set of attributes
     Attributes container = new BasicAttributes();

     // Create the objectclass to add
     Attribute objClasses = new BasicAttribute("objectClass");
     objClasses.add("top");
     objClasses.add("groupOfUniqueNames");

     // Assign name to the group
     Attribute cn = new BasicAttribute("cn", groupName);
     Attribute groupType = new BasicAttribute("groupType", "2147483650"); // security group
     Attribute desc = new BasicAttribute("description", "testDescription");

     // Add these to the container
     container.put(objClasses);
     container.put(cn);
     container.put(groupType);
     container.put(desc);

     // Create the entry
     try {
       context.createSubcontext(getGroupDN(groupName, groupOU), container);
       return true;
     } catch (Exception e) {
       _log.error(e);
       return false;
     }
   }

При запуске я получаю следующее исключение:

javax.naming.OperationNotSupportedException: [LDAP: error code 53 - 00002077: SvcErr: DSID-0319088A, problem 5003 (WILL_NOT_PERFORM)

Я обнаружил, что информации об этом немного, поэтому чувствую себя немного растерянным. Надеюсь, кто-нибудь может мне помочь.

1 Ответ

0 голосов
/ 23 января 2019

Код ошибки Ldap 53 достаточно широк, но, надеюсь, может помочь следующее (взято из здесь )

Указывает, что сервер LDAP не может обработать запрос из-за определенного серверомограничения.Эта ошибка возвращается по следующим причинам:

  • Запрос на добавление нарушает правила структуры сервера.
  • Запрос на изменение указывает атрибуты, которые пользователи не могут изменять.
  • Парольограничения запрещают действие.
  • ограничения подключения запрещают действие.

Когда вы пытаетесь добавить группу (и уже установили успешное соединение для создания пользователя)Я бы предположил, что это, вероятно, связано с первой причиной - группа, которую вы пытаетесь создать, вероятно, нарушает правила структуры сервера AD.

...