2012-09-13 74 views
0

我試圖檢索具有與從Unboundit LDAP SDK的Netscape LDAP目錄中的名稱幾個屬性的對象。問題是,只有一個屬性返回 - 我猜大量獨特的屬性名LDAP SDK繼電器,有沒有配置它也返回非不同的屬性和方法嗎?非唯一LDAP屬性名稱與Unboundit LDAP SDK

@Test 
public void testRetrievingUsingListener() throws LDAPException { 
    long currentTimeMillis = System.currentTimeMillis(); 

    LDAPConnection connection = new LDAPConnection("xxx.xxx.xxx", 389, 
      "uid=xxx-websrv,ou=xxxx,dc=xxx,dc=no", 
      "xxxx"); 
    SearchRequest searchRequest = new SearchRequest(
      "ou=xxx,ou=xx,dc=xx,dc=xx", 
      SearchScope.SUB, "(uid=xxx)", SearchRequest.ALL_USER_ATTRIBUTES); 

    LDAPEntrySource entrySource = new LDAPEntrySource(connection, 
      searchRequest, true); 

    try { 
     while (true) { 
      try { 
       System.out.println("*******************************************"); 
       Entry entry = entrySource.nextEntry(); 
       if (entry == null) { 
        // There are no more entries to be read. 
        break; 
       } else { 
        Collection<Attribute> attributes = entry.getAttributes(); 
        for (Attribute attr : attributes) 
        { 
         System.out.println (attr.getName() + " " + attr.getValue()); 

        } 
       } 
      } catch (SearchResultReferenceEntrySourceException e) { 
       // The directory server returned a search result reference. 
       SearchResultReference searchReference = e 
         .getSearchReference(); 
      } catch (EntrySourceException e) { 
       // Some kind of problem was encountered (e.g., the 
       // connection is no 
       // longer valid). See if we can continue reading entries. 
       if (!e.mayContinueReading()) { 
        break; 
       } 
      } 
     } 
    } finally { 
     entrySource.close(); 
    } 

    System.out.println("Finished in " + (System.currentTimeMillis() - currentTimeMillis)); 

} 
+0

發現: 字符串[]值= attr.getValues(); \t \t \t \t \t \t \t \t \t \t \t \t \t \t字符串值= 「」; \t \t \t \t \t \t \t對(INT I = 0; I

回答

0

非唯一LDAP屬性被認爲是多值並作爲reperesented陣列String

使用Attribute.getValues(),而不是attribute.getValue