Назад | Перейти на главную страницу

Регистрация пользователя LDAP дает ошибку «нет глобальных превосходных знаний», в то время как DN определяется в файле .ldif

Я использую LDAP для управления пользователями и настроил его с помощью Spring Boot Ldap. Вход в систему (аутентификация) работает правильно, и теперь я пытаюсь зарегистрировать нового пользователя и вставить запись в LDAP с помощью метода ldapTemplate.bind ().

Постановка на учет

public String create(UserResponsePojo userResponsePojo) {
        try {
              Name dn = LdapNameBuilder
                      .newInstance()
                      .add("o", "company")
                      .add("ou", "department")
                      .build();

                    DirContextAdapter context = new DirContextAdapter();
                    context.setDn(dn);
                    context.setAttributeValues("objectclass", new String[]{"top", "person", "inetOrgPerson"});
                    context.setAttributeValue("cn", userResponsePojo.getUsername());
                    context.setAttributeValue("sn", userResponsePojo.getLastname());
                    context.setAttributeValue("description", userResponsePojo.getUserrole());
                    context.setAttributeValue("mail", userResponsePojo.getUid());
                    context.setAttributeValue("userPassword", userResponsePojo.getPassword());

                    ldapTemplate.bind(context);

                    return "success";
                } catch (Exception e) {
                    e.printStackTrace();
                    return "failed";
                }   
    }

ldif файл

# id=00000001
dn: o=company
objectClass: organization
structuralObjectClass: organization
o: company
entryCSN: 20130409162114.626166Z#000000#000#000000
entryUUID: 3e7f8668-357d-1032-8a6b-c5bcf7f703f0
creatorsName: cn=Manager,o=company
createTimestamp: 20130409162114Z
modifiersName: cn=Manager,o=company
modifyTimestamp: 20130409162114Z
contextCSN: 20130702105648.506150Z#000000#000#000000
contextCSN: 20191018052018.692119Z#000000#001#000000
contextCSN: 20191018044350.858888Z#000000#002#000000
contextCSN: 20191018053729.621549Z#000000#003#000000

# id=00000002
dn: ou=department,o=company
objectClass: organizationalUnit
structuralObjectClass: organizationalUnit
ou: department
entryCSN: 20130409162455.623488Z#000000#000#000000
entryUUID: c2390a06-357d-1032-8a6c-c5bcf7f703f0
creatorsName: cn=Manager,o=company
createTimestamp: 20130409162455Z
modifiersName: cn=Manager,o=company
modifyTimestamp: 20130409162455Z

# id=00000003
dn: mail=abc@gmail.com,ou=department,o=company
businessCategory: unset
sn: unset
userPassword:: e1NTSEF9RTFoVUNEM1pPc3RBQ2g4ZHWlVDTk80QWN6ajk3aHFC
mail: abc@gmail.com
objectClass: top
objectClass: person
objectClass: inetOrgPerson
structuralObjectClass: inetOrgPerson
entryUUID: 842a22b0-a8c6-1032-9ba8-e1e428e5443b
creatorsName: cn=Manager,o=company
createTimestamp: 20130903092528Z
cn: abc
description: Member
entryCSN: 20130903092528.695993Z#000000#000#000000
modifiersName: cn=Manager,o=company
modifyTimestamp: 20130903092528Z

# id=00000004
dn: mail=xyz@gmail.com,ou=department,o=company
uid: unset
mail: xyz@gmail.com
sn: unset
userPassword:: e1NTSEF9OXU3aEFVQkthdZMb284ZWQrNkthdUtrN1NDUnAraDFU
objectClass: top
objectClass: person
objectClass: inetOrgPerson
structuralObjectClass: inetOrgPerson
entryUUID: eafcbd14-a8ca-1032-9bac-e1e428e5443b
creatorsName: cn=Manager,o=company
createTimestamp: 20130903095658Z
cn: xyz
description: Member
businessCategory: e-Governance
entryCSN: 20130927145536.344831Z#000000#000#000000
modifiersName: cn=Manager,o=company
modifyTimestamp: 20130927145536Z

Когда вызывается ldapTemplate.bind (), он выдает ошибку LDAP: код ошибки 53 - нет глобальных высших знаний

org.springframework.ldap.OperationNotSupportedException: [LDAP: error code 53 - no global superior knowledge]; nested exception is javax.naming.OperationNotSupportedException: [LDAP: error code 53 - no global superior knowledge]; remaining name 'ou=department,o=company'

Я искал решение в Интернете и обнаружил, что эта ошибка возникает, когда мы пытаемся вставить пользователя в какой-то каталог, который недоступен в файле ldif, но, как я вижу, я пытаюсь использовать тот же каталог, который также доступен в файле ldif как хорошо. Я перепробовал много комбинаций DN, но не нашел нужного решения. Пожалуйста, помогите мне пройти через это. Заранее спасибо!