我有以下问题。有工作的OpenDJ服务器,连接使用UnboundID LDAP为Java。我学会了如何搜索特定的条目,但是对于给定的条目,如何获得"entryUUID“属性的值呢?OpenDJ说这是“不可编辑的属性”之一,我在SearchResultEntry对象中看不到使用getAttributes()方法的任何属性。
我的意思是:
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中的属性映射中没有参数“不可编辑的参数”。
发布于 2014-05-11 20:57:33
EntryUUID是一个不可编辑的操作属性.使用LDAP时,只有在搜索时才返回操作属性,如果您特别请求它们的话。在您的示例中,搜索请求没有指定请求的属性,因此意味着返回所有用户属性。我确信UnboundID SDK有一个搜索方法,它接受要返回的属性列表。
你好,路多维奇
发布于 2016-12-14 08:53:33
EntryUUID是一个操作属性,默认情况下只返回用户属性。为此,您必须显式地请求操作属性。您可以使用ALL_OPERATIONAL_ATTRIBUTES。
下面的方法适用于JavaLDAPSDKforJava2.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 "";
}https://stackoverflow.com/questions/23150225
复制相似问题