Openldap 为ldapjs服务器端排序创建客户端控件对象

Openldap 为ldapjs服务器端排序创建客户端控件对象,openldap,ldapjs,Openldap,Ldapjs,是否有人成功地将服务器端排序控件与ldapjs一起使用?这些文档没有提供创建/使用此类控制对象的任何具体示例 我已经在openldap服务器端启用了覆盖,但似乎无法为客户端控件提供正确的格式。我不确定创建SortKeyList的缓冲区值的正确格式,如中所述 我收到以下错误: searchErr: TypeError: argument must be a string (was: object) at Writer.writeString (/srv/node_modules/asn1/lib/

是否有人成功地将服务器端排序控件与ldapjs一起使用?这些文档没有提供创建/使用此类控制对象的任何具体示例

我已经在openldap服务器端启用了覆盖,但似乎无法为客户端控件提供正确的格式。我不确定创建SortKeyList的缓冲区值的正确格式,如中所述

我收到以下错误:

searchErr: TypeError: argument must be a string (was: object)
at Writer.writeString (/srv/node_modules/asn1/lib/ber/writer.js:134:11)
at Control.toBer (/srv/node_modules/ldapjs/lib/controls/control.js:50:27)
at /srv/node_modules/ldapjs/lib/messages/message.js:99:9
at Array.forEach (<anonymous>)
at SearchRequest.LDAPMessage.toBer (/srv/node_modules/ldapjs/lib/messages/message.js:98:19)
at Client._sendSocket (/srv/node_modules/ldapjs/lib/client/client.js:1255:31)
at Client._send (/srv/node_modules/ldapjs/lib/client/client.js:1148:17)
at sendRequest (/srv/node_modules/ldapjs/lib/client/client.js:607:17)
at Client.search (/srv/node_modules/ldapjs/lib/client/client.js:636:5)
at client.starttls (/srv/nodeserver.dev/ldap.js:105:24)
searchErr:TypeError:argument必须是字符串(was:object)
在Writer.writeString(/srv/node_modules/asn1/lib/ber/Writer.js:134:11)
在Control.toBer(/srv/node_modules/ldapjs/lib/controls/Control.js:50:27)
at/srv/node_modules/ldapjs/lib/messages/message.js:99:9

在Array.forEach(也是徒劳的。

我最终通过从通用切换到特定来实现这一点

您可以只提供SortKeyList的值。函数将附加OID类型。可以忽略关键性

const control = { "value": { "attributeType": "uid", "orderingRule": "CaseIgnoreOrderingMatch" } };

const controls = new ldap.ldapjs.ServerSideSortingRequestControl( control );
但请注意,这不是一个非常有效的解决方案

const control = { "value": { "attributeType": "uid", "orderingRule": "CaseIgnoreOrderingMatch" } };

const controls = new ldap.ldapjs.ServerSideSortingRequestControl( control );