如何向ldap用户添加自定义属性?

时间:2010-05-07 10:27:32

标签: java ldap

我使用以下代码在LDAP中创建了一个属性。

attrs.put("NUMERICOID", "1.3.6.1.4.1.42.2.27.4.2.3.1.1.9");
            attrs.put("NAME", "myattribute");
            attrs.put("DESC", "for JNDITutorial example only");
            attrs.put("SYNTAX", "1.3.6.1.4.1.1466.115.121.1.15");
            DirContext schema = context.getSchema("");
           DirContext newAttr = schema.createSubcontext  ("AttributeDefinition/myattribute1", attrs);   

该属性已成功创建, 现在我正在尝试将此属性添加到用户说“user1”(uid)。

Attributes attributeslist = context.getAttributes(ld.getUserDN(username));
            attributeslist.put("myattribute1", "");
            context.modifyAttributes(ld.getUserDN("test5"), DirContext.REPLACE_ATTRIBUTE, attributeslist);

但是它给了我对象类违规错误。

任何人都可以帮我解决这个问题吗?我需要使用java代码向用户添加用户定义的attribut。

1 个答案:

答案 0 :(得分:0)

您创建属性,然后选择它应属于的类,并更新该类。

您可以修改基类(随LDAP服务器基础架构一起提供),一个有效的类(一个可以独立存在的对象类,如inetOrgPerson)或一个辅助类(不能生成这种类型的对象)本身,但它扩展了另一个对象类)。

因此,定义一个aux类以“保持”您的新属性,然后使用您的类的名称向目标对象的Object Class添加一个条目,然后您可以将该属性添加到用户。

我们一直这样做。