我使用以下代码在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。
答案 0 :(得分:0)
您创建属性,然后选择它应属于的类,并更新该类。
您可以修改基类(随LDAP服务器基础架构一起提供),一个有效的类(一个可以独立存在的对象类,如inetOrgPerson)或一个辅助类(不能生成这种类型的对象)本身,但它扩展了另一个对象类)。
因此,定义一个aux类以“保持”您的新属性,然后使用您的类的名称向目标对象的Object Class添加一个条目,然后您可以将该属性添加到用户。
我们一直这样做。