我正在尝试获取 LDAP 用户内部属性,但找不到获取它们的方法
DirContext ctx = this.getDirContext();
List<Employee> list = new ArrayList<Employee>();
NamingEnumeration<SearchResult> results = null;
try {
SearchControls controls = new SearchControls();
controls.setSearchScope(SearchControls.SUBTREE_SCOPE);
results = ctx.search("", "(objectclass=person)", controls);
while (results.hasMore()) {
SearchResult searchResult = results.next();
Attributes attributes = searchResult.getAttributes();
String fullName = this.getValue(attributes.get("cn"));
//so on...
}
// so on
我也想从 LDAP 获取每个员工/人员的内部属性。 默认情况下,它不会返回内部属性 [ex: createTimestamp]
最佳答案
除非您提出要求,否则您不会获得任何操作属性。目前你没有要求任何属性,这相当于构建 SearchControls
,或者在之后调用 SearchControls.setReturningAttributes(String[])
,使用参数 new String[]{"*"}:
这为您提供了所有非操作属性。
要同时获取操作属性,请使用参数 new String[]{"*","+"}
。
关于java - 获取 LDAP 对象的内部属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18607828/