2014-01-15 2 views
7

Я пытаюсь добавить пользователя в Active Directory.
Имея в виду:Java LDAP - добавить группу к проблеме пользователя - Код ошибки 53 - WILL_NOT_PERFORM

  • Использование SSL
  • сертификат ОК
  • пароль штраф

работает с вне группы ассоциации, пользователь создан правильно.

Когда я пытаюсь связать пользователя в группу, я получаю следующее сообщение об ошибке:
javax.naming.OperationNotSupportedException: Код ошибки 53 - 0000209A:: [LDAP SvcErr: DSID-031A1021, проблема 5003 (WILL_NOT_PERFORM), данных 0

Я использовал атрибуты группы DN и NAME, но никто не работал. Мой код:

ctx = getContext(); 
    ctx.createSubcontext(entryDN,entry); // it works fine 

    Attribute memberOf1 = new BasicAttribute("memberOf","NAME_OF_THE_GROUP"); 
    Attributes atts  = new BasicAttributes(); 
    atts.put(memberOf1); 
    ctx.modifyAttributes(entryDN, LdapContext.ADD_ATTRIBUTE, atts); // ## it doesn't work 

Я попытался LdapContext.ADD_ATTRIBUTE и LdapContext.REPLACE_ATTRIBUTE. Кроме того, я попытался добавить группу с другими атрибутами, но вся ситуация дала мне ту же ошибку.

Кто-нибудь знает, что происходит?

Cheers!

ответ

13

memberOf - это построенный атрибут. Вы должны добавить пользователя в свойство участника группы, а не добавлять группу в свойство memberOf пользователя.

+0

Прекрасный, это решить мою проблему! Я буду размещать решение в пару минут. –

+1

Элемент BasicAttribute = новый BasicAttribute ("member", entryDN); Атрибуты atts = new BasicAttributes(); atts.put (член); ctx.modifyAttributes ("GROUP_DN", LdapContext.ADD_ATTRIBUTE, atts); –

+0

Большое спасибо за решение. он работает как угодно :) – Rajesh

4

Код решение:

BasicAttribute member = new BasicAttribute("member",entryDN); 
Attributes atts = new BasicAttributes(); 
atts.put(member); 
ctx.modifyAttributes("GROUP_DN", LdapContext.ADD_ATTRIBUTE, atts);  

Благодаря Hall72215.

+0

Еще короче: член атрибутов = новый BasicAttributes ("member", entryDN); ctx.modifyAttributes ("GROUP_DN", LdapContext.ADD_ATTRIBUTE, член); – kaybee99

3

Попробуйте использовать это, она работает для меня

ModificationItem[] mods = new ModificationItem[1]; 
String userDn="cn=user name,CN=Users,DC=domain,DC=com" 
String groupDn="cn=Group Name,CN=Groups,DC=domain,DC=com" 
Attribute mod =new BasicAttribute("member",userDn); 
mods[0] =new ModificationItem(DirContext.ADD_ATTRIBUTE, mod); 
ldapContext.modifyAttributes(groupDn, mods); 
+1

спасибо, что получил решение для использования этого кода –

+0

Я также получил решение, используя ваш блок кода :) спасибо – Akyo

Смежные вопросы