Has anyone has success using the server side sorting control with ldapjs? The docs don't provide any specific examples of creating/using such a control object.
I have enabled the overlay on the openldap server side, but can't seem to come up with the proper format for the client control. I am not sure of the correct format for the Buffer value to create the SortKeyList as mentioned in RFC 2891
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
} );
I receive the following error:
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)
I've consulted function ldapjs.ServerSideSortingRequestControl (options) and also function ldapjs.Control (options) to no avail.