2014-04-18 5 views
2

다음과 같은 문제가 있습니다. UnboundID LDAP SKD for Java를 사용하여 OpenDJ 서버 연결이 작동 중입니다. 특정 항목을 검색하는 방법을 배웠지 만 주어진 항목에 대해 "entryUUID"속성 값을 얻는 방법은 무엇입니까? OpenDJ는 그것이 "편집 할 수없는 속성"중 하나라고 말하고 getAttributes() 메소드를 사용하여 SearchResultEntry 객체에서 해당 속성을 볼 수 없습니다. Java 용 UnboundId LDAP SDK가있는 OpenDJ

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"); 
    } 
} 

그러나 속성에

이 매개 변수 "비 편집 가능한 매개 변수"

+0

이유가 확실하지 않은 이유는 무엇입니까? –

답변

2

EntryUUID가 아닌 편집 작동 가능 속성이없는 SearchResultEntry에서지도 :

내가 좋아하는 뭔가를 의미한다. 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 ""; 
}