有没有人成功使用带有 ldapjs 的服务器端排序控件?文档没有提供任何创建/使用此类控制对象的具体示例。
我已经在 openldap 服务器端启用了覆盖,但似乎无法为客户端控件提供正确的格式。我不确定 Buffer 值的正确格式来创建RFC 2891中提到的 SortKeyList
const stringBuf = Buffer.from( 'uid' );
// The LDAP the Server-Side Sorting Control
const controls = new ldap.ldapjs.Control( {
"type": "1.2.840.113556.1.4.473",
"criticality": true,
"value": stringBuf
} );
我收到以下错误:
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)
我咨询了函数 ldapjs.ServerSideSortingRequestControl (选项)和函数 ldapjs.Control (选项)无济于事。