【问题标题】:LDAP query - Include query filter on resultLDAP 查询 - 在结果中包含查询过滤器
【发布时间】:2021-03-19 18:27:43
【问题描述】:

我正在执行如下所示的 LDAP 查询:

(&(|(objectClass=ExternalAccount)(objectClass=Person))(|(uid=SOMETHING)))

结果是这样的

cn=something,ou=something,o=something,dc=something,dc=something

我希望在与结果关联的查询中设置我在 uid 上的值。 像这样的东西是理想的:

  uid=SOMETHING,cn=something,ou=something,o=something,dc=something,dc=something

我需要这个的原因是因为在这种情况下我需要做类似的事情

(&(|(objectClass=ExternalAccount)(objectClass=Person))(|(uid=SOMETHING1)(uid=SOMETHING2)))

我希望将结果与其匹配的参数关联,如下所示:

uid=SOMETHING1,cn=value1,ou=value1,o=value1,dc=value1,dc=value1
uid=SOMETHING2,cn=value2,ou=value2,o=value2,dc=value2,dc=value2

这可能吗?如果是这样,我该如何实现?

我在实际代码中使用 javax.naming.directory 库。 要使用 gui 测试查询,我使用 LDAPAdmin

这是一个针对单个 uid 的代码示例:

        fun getFromLDAP(uid: String): String? {
        return InitialDirContext(connectionsProperties).let { context ->
        val searchControls =
            SearchControls().also { controls -> controls.searchScope = SearchControls.SUBTREE_SCOPE }
        val searchString = "(&(|(objectClass=ExternAccount)(objectClass=Person))(uid=$uid))"

        context.search(config.searchBase, searchString, searchControls)
            .toList()
            .first()
            .also { context.close() }
    }
}

对于 attributes.all 调用此函数的结果的所需结果也包含 de uid,但现在不会发生。

【问题讨论】:

  • 您是如何提交查询的?您正在使用哪些工具? Active Directory 支持发出查询诊断,但没有达到您期望的程度......
  • 我正在使用 javax 命名库。将使用该信息更新问题
  • 您只需要在要返回的属性列表中提及“uid”即可。你的代码在哪里?
  • 嗨。将使用代码更新问题。

标签: java kotlin active-directory ldap ldap-query


【解决方案1】:

这是用于连接 LDAP 的用户的权限问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 2022-10-14
    • 1970-01-01
    • 2012-10-20
    • 2012-04-20
    • 2019-12-29
    • 1970-01-01
    相关资源
    最近更新 更多