여러 값을 저장하는 LDAP 속성이 있습니다. 즉, 사용자 세부 정보 (성, 성, 전자 메일 주소 등)는 키 값 쌍이있는 하나의 속성에 저장됩니다.LDAP의 다중 값 속성에서 단일 값
예 : 속성 이름 = 'Testuser'. 이 'Testuser'속성은 다음과 같은 다중 값을 갖습니다. firstname = test, lastname = testing [email protected]
이제 Java 코드를 사용하여 firstname 값을 혼자서 수정하고 싶습니다.
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 = " ";
}
}
나는 다음과 같은 출력을 얻고있다 : 여기
내 코드 (내가 ModificationItem를 사용하여 단일 속성 변경을 찾을 수 많은 사이트를 검색 한)
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: [email protected]
value: Profile.Contact.LastName=lastname
지금 내가 원하는 propertycollection 속성에있는 "Profile.Contact.FirstName = David"값만 수정하십시오.
도움이 정말 감사합니다.
감사합니다.