2013-08-28 2 views
0

여러 값을 저장하는 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"값만 수정하십시오.

도움이 정말 감사합니다.

감사합니다.

답변

1

javax.naming.directory.BasicAttribute을 만드는 방법은 필요한 모든 속성을 추가하십시오.

그런 다음, 여기에 짧은 튜토리얼을 따라 : 우리는 당신이 고뇌 무엇을 볼 수 있도록 Oracle tutorial

는 짧은 코드로 날을 제공하십시오.

관련 문제