2014-04-18 116 views
2

我有以下問題。 有工作OpenDJ服務器,連接使用UnboundID LDAP SKD for Java。我學會了如何搜索特定的條目,但是如何獲得給定條目的「entryUUID」屬性的值? OpenDJ說這是「不可編輯的屬性」之一,我無法在使用getAttributes()方法的SearchResultEntry對象中看到任何這些屬性。OpenDJ與UnboundId LDAP SDK for Java

我的意思是這樣的:

public String getUserUUID(String cn) { 
    SearchResult sr = connection.search(dn, SearchScope.SUB, Filter.createEqualityFilter("cn",   cn)); 
    if (sr.getEntryCount() > 0){  
     return sr.getSearchEntries().get(0).getAttributeValue("entryUUID"); 
    } 
} 

但在屬性映射在SearchResultEntry沒有參數「不可編輯參數」

+0

不知道爲什麼這是倒票 - 似乎是一個合理的問題......? –

回答

2

EntryUUID是一個不可編輯的操作屬性。 使用LDAP時,只有在搜索時纔會返回操作屬性,如果您有特別要求的話。 就你而言,搜索請求不會指定所請求的屬性,因此意味着返回所有用戶屬性。 我很確定UnboundID SDK有一個接受要返回的屬性列表的搜索方法。

問候, 朱利

1

EntryUUID是一個操作屬性和默認僅返回的用戶屬性。爲此,您必須明確請求操作屬性。您可以使用ALL_OPERATIONAL_ATTRIBUTES


下面的方法適用於UnboundId LDAP SDK for Java 2.3.8。

public String getUserUUID(String cn) throws LDAPSearchException { 
    SearchResult sr = connection.search(dn, SearchScope.SUB, Filter.createEqualityFilter("cn",cn), ALL_OPERATIONAL_ATTRIBUTES); 
    if (sr.getEntryCount() > 0){ 
     return sr.getSearchEntries().get(0).getAttributeValue("entryUUID"); 
    } 
    return ""; 
}