我有一个存储多个值的LDAP属性 即,用户详细信息(如名字,姓氏,电子邮件地址)存储在具有键值对的一个属性中。
例如,attribute name ='Testuser'。这个'Testuser'属性如下多个值:firstname = test,lastname = testing email =testing@xxx.com就像这样。
现在我想使用java代码单独修改firstname值。 (我已经搜索了很多可以使用ModificationItem找到单个属性更改的网站)
这是我的代码段:
DirContext ctx = new InitialDirContext(env);
SearchControls ctls = new SearchControls();
ctls.setReturningObjFlag(true);
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String filter;
filter = "(&(objectClass=myobjectclass)(apn=" + userName + "))";
NamingEnumeration answer = ctx.search("o=mydomain", filter, ctls);
while (answer.hasMore()) {
SearchResult sr = (SearchResult)answer.next();
Attributes attrs = sr.getAttributes();
String givenName = " ";
try {
for (NamingEnumeration e = attrs.getAll(); e.hasMore();) {
Attribute attr = (Attribute) e.next();
System.out.println("Attribute name: " + attr.getID());
for (NamingEnumeration n = attr.getAll(); n.hasMore(); System.out
.println("value: " + n.next()));
}} catch (Exception err) {
givenName = " ";
}
}
Attribute name: apn
value: testuser
Attribute name: appropertycollection
value: Profile.Contact.ZipCode=46784157
value: Profile.Contact.State=7
value: Profile.Contact.MobileNum=4564545455
value: Profile.Contact.Password=12345
value: Profile.Contact.FirstName=David
value: Profile.Contact.Address=TestAddress456
value: Profile.Contact.Email=asde@xxx.com
value: Profile.Contact.LastName=lastname
现在我想单独修改一个属性集属性中的“Profile.Contact.FirstName = David”值。
非常感谢帮助。
谢谢!
答案 0 :(得分:1)
如何创建javax.naming.directory.BasicAttribute,添加所有必要的属性。
然后,请点击此处的简短教程:Oracle tutorial
请为我提供一个简短的代码段,以便我们看到您为此感到痛苦。