java - 获取 LDAP 对象的内部属性

标签 java attributes ldap jndi

我正在尝试获取 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]

enter image description here

最佳答案

除非您提出要求,否则您不会获得任何操作属性。目前你没有要求任何属性,这相当于构建 SearchControls,或者在之后调用 SearchControls.setReturningAttributes(String[]),使用参数 new String[]{"*"}:这为您提供了所有非操作属性。

要同时获取操作属性,请使用参数 new String[]{"*","+"}

关于java - 获取 LDAP 对象的内部属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18607828/

相关文章:

python - 在对象列表中获取具有最大属性值的对象

php - 如何在php中通过ldap获取事件目录的密码?

java - 对 C++ 中 ptrdiff_t 的使用感到困惑

java - Firebase 数据到 Spinner

java - 在 vaadin 中自动完成?

delphi - 检查 Active DIRECTORY 中是否存在用户身份验证

java - 如何通过 Java 代码在没有完整 CN/DN 的情况下连接 Active Directory

java - "Package has incorrect spelling" eclipse

python - 无法在 "object"类的实例上设置属性

python - 最大递归深度超出 getter Django