OpenAM не удалось добавить пользователя через rest API (отсутствует требуемый sn)

Схема OpenAM по умолчанию требует атрибутов sn и cn при использовании службы /identity/create. Несмотря на то, что я указываю их в запросе, я получаю сообщение об ошибке, говорящее, что sn отсутствует... У кого-нибудь еще есть работающая конечная точка создания удостоверения?

Я использую OpenDS для поддержки ldap и версию 9.5.4 для OpenAM. Все остальные конечные точки (аутентификация, выход из системы, isValidToken, обновление) работают нормально.

Запрос:

http://openam:8080/openam/identity/create?admin={token}&identity_type=user&identity_name=jdoe&identity_realm=/&identity_attribute_names=userpassword&identity_attribute_values_userpassword=changeme&identity_attribute_names=givenname&identity_attributes_values_givenname=tbd&identity_attribute_names=sn&identity_attributes_values_sn=tbd&identity_attribute_names=cn&identity_attributes_values_cn=tbd

Исключение:

exception.name=com.sun.identity.idsvcs.GeneralFailure Plug-in com.sun.identity.idm.plugins.ldapv3.LDAPv3Repo encountered an ldap exception. LDAP Error 65: The requested operation will add or change data so that the data no longer complies with the schema.

Ошибка OpenDS:

ADD RES conn=82 op=20 msgID=33882 result=65 message="Entry uid=jdoe,ou=people,dc=company,dc=com violates the Directory Server schema configuration because it is missing attribute sn which is required by objectclass person" etime=0

Обновлять:

Похоже, что к тому времени, когда он попадет в LDAPv3Repo, атрибуты sn и cn будут удалены:

LDAPv3Repo:07/02/2012 05:52:17:986 PM PDT: Thread[http-bio-8080-exec-2,5,main]
exit addAttrMapping: attrMap = {mail=[], sn=[], cn=[], inetuserstatus=[Active], givenname=[], userpassword=xxx..., dn=[]}

В журнале отладки нет ничего, что могло бы помочь.


person Mark    schedule 02.07.2012    source источник


Ответы (1)


Похоже, вы натолкнулись на опечатку и бесполезные сообщения об ошибках.

Ваша пара пользовательских паролей

identity_attribute_names=userpassword&identity_attribute_values_userpassword=changeme

должно быть

identity_attribute_names=userpassword&identity_attributes_values_userpassword=changeme

с дополнительной буквой s в конце второго атрибута. Вы, вероятно, найдете список рассылки OpenAM более отзывчивым на вопросы OpenAM (https://lists.forgerock.org/mailman/listinfo/openam)

person Sam    schedule 03.07.2012
comment
Я тоже обнаружил это сегодня утром при отладке сервера, хотя на самом деле проблема в том, что с командой обновления она должна быть identity_attribute_values_* (единственное число, а не множественное число). Проблема заключалась в дополнительных s в значениях cn и sn. - person Mark; 04.07.2012