ldapts: LDAP SASL `EXTERNAL` broken in 4.2.0

Version 4.1.1 works fine, but 4.2.0 breaks this:

await client.bind('EXTERNAL');

It gives:

SaslBindInProgressError: SASL(0): successful result:  Code: 0xe
       at StatusCodeParser.parse (/home/user1/code/projectA/node_modules/ldapts/StatusCodeParser.js:28:24)
       at Client._sendBind (/home/user1/code/projectA/node_modules/ldapts/Client.js:472:55)
       at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
       at async Client.bindSASL (/home/user1/code/projectA/node_modules/ldapts/Client.js:168:9)
       at async Client.bind (/home/user1/code/projectA/node_modules/ldapts/Client.js:141:13)
       at async getUserDetails (file:///home/user1/code/projectA/framework/authentication/ldapAdp.js:210:7)
       at async Strategy._verify (file:///home/user1/code/projectA/framework/authentication/ldapAdp.js:100:13) {
     code: 14,
     response: BindResponse {
       version: 3,
       messageId: 2,
       controls: [],
       status: 14,
       matchedDN: '',
       errorMessage: 'SASL(0): successful result: ',
       data: [Array],
       protocolOperation: 97
     }
   }
 }

There is something in https://github.com/ldapts/ldapts/pull/120 that must handle this incorrect.

For info: Calling BIND twice does not help.

cc @jgeurts @TimoHocker

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 15 (15 by maintainers)

Most upvoted comments

Mine too

my tests are successful too

Could you please try ldapts@5.0.0-beta1 when you have a chance?

@jgeurts just update and tested and can confirm the version above is working

Could you please try ldapts@5.0.0-beta1 when you have a chance?

@wattry @TimoHocker the fix works 😃

@TimoHocker I’m going to put in a PR with the change necessary to fix this for external binds from failing without a password. I think it’s a better change from a usability standpoint although I think a warning is annoying on your end.