LDAP 查询 - 在结果中包含查询过滤器
LDAP query - Include query filter on result
我正在执行如下所示的 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,这现在没有发生。
用于连接到 LDAP 的用户权限存在问题。
我正在执行如下所示的 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,这现在没有发生。
用于连接到 LDAP 的用户权限存在问题。