У меня OpenAM (был OpenSSO) успешно установлен и работает в контейнере Glassfish. Еще у меня установлен OpenLDAP и работает минимально. Теперь я пытаюсь импортировать файл LDIF с записями с другого сервера (Java Access Manager и Sun Java System Directory Server), но при попытке запустить ldapadd получаю постоянную ошибку:
ldap_add: Invalid syntax (21)
additional info: objectClass: value #2 invalid per syntax
Я добавил схему, представленную на http://blogs.oracle.com/indira/entry/using_openldap_as_user_data, но это не влияет на сообщение об ошибке. Возможно, мне не хватает простого понимания LDAP!
Вот пример записи из моего файла LDIF (изменен домен и пароль):
dn: uid=amAdmin,ou=People,dc=domain,dc=org
objectClass: inetuser
objectClass: inetorgperson
objectClass: organizationalperson
objectClass: person
objectClass: top
objectClass: iplanet-am-managed-person
objectClass: iplanet-am-session-service
objectClass: iplanet-am-user-service
objectClass: iPlanetPreferences
objectClass: inetAdmin
objectClass: sunAMAuthAccountLockout
inetUserStatus: Active
cn: amAdmin
sn: amAdmin
userPassword:: ------
uid: amAdmin
Я предполагаю, что файл схемы, указанный в приведенной выше ссылке, должен содержать конфигурацию для всех атрибутов, которые используются в строках "objectClass", но это могло быть одним из моих основных недоразумений!
Спасибо за любую помощь!
Эта ошибка либо значение объектного класса не распознано, либо синтаксис атрибута неверен, часто из-за лишних пробелов в определении записи LDIF. значение # 2 - inetOrgPerson, я бы подумал, что это второй вариант.