Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't login with LDAP with "missing paren" error #26954

Open
dusatvoj opened this issue Sep 27, 2022 · 3 comments
Open

Can't login with LDAP with "missing paren" error #26954

dusatvoj opened this issue Sep 27, 2022 · 3 comments

Comments

@dusatvoj
Copy link

Description:

Steps to reproduce:

  1. Try to login via LDAP as it has been working in v3.18.x

Expected behavior:

Login Successful

Actual behavior:

Bad password or user not found error

Server Setup Information:

  • Version of Rocket.Chat Server: 5.1.3 (broken also in 5.0.x ; tried upgrade but not fixed)
  • Operating System: Debian
  • Deployment Method: tar
  • Number of Running Instances: 1
  • DB Replicaset Oplog: yes
  • NodeJS Version: v14.19.3
  • MongoDB Version: 4.4.16

Client Setup Information

  • Desktop App or Browser Version: latest app @ arch linux ; browser broken too
  • Operating System: linux / android

Additional context

N/A

Relevant logs:

Server logs:

Sep 27 09:25:21 node3 rocketchat[3399733]: {"level":50,"time":"2022-09-27T07:25:21.256Z","pid":3399733,"hostname":"node3","name":"LDAP","err":{"type":"Error","message":"missing paren","stack":"Error: missing paren\n    at parseFilter (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:198:13)\n    at parseFilter (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:204:13)\n    at parseFilter (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:204:13)\n    at Object.parse (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:252:18)\n    at Object.parseString (/opt/Rocket.Chat/programs/server/npm/node_modules/ldapjs/lib/filters/index.js:179:27)\n    at Client.search (/opt/Rocket.Chat/programs/server/npm/node_modules/ldapjs/lib/client/client.js:571:30)\n    at server/lib/ldap/Connection.ts:338:16\n    at new Promise (<anonymous>)\n    at server/lib/ldap/Connection.ts:337:10\n    at /opt/Rocket.Chat/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40\n => awaited here:\n    at Function.Promise.await (/opt/Rocket.Chat/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:56:12)\n    at server/lib/ldap/Manager.ts:159:15\n    at /opt/Rocket.Chat/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40"},"msg":"missing paren"}
Sep 27 09:25:21 node3 rocketchat[3399733]: {"level":50,"time":"2022-09-27T07:25:21.395Z","pid":3399733,"hostname":"node3","name":"System","msg":"Exception while invoking method login 'Login forbidden [403]'"}
@dusatvoj dusatvoj changed the title Can't login with LDAP with "unclosed paren" error Can't login with LDAP with "missing paren" error Sep 28, 2022
@dusatvoj
Copy link
Author

dusatvoj commented Sep 28, 2022

Even LDAP search is broken with same error.

Sep 28 14:22:34 node6 rocketchat[1329925]: {"level":50,"time":"2022-09-28T12:22:34.782Z","pid":1329925,"hostname":"node6","name":"LDAP","err":{"type":"Error","message":"missing paren","stack":"Error: missing paren\n    at parseFilter (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:198:13)\n    at parseFilter (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:204:13)\n    at parseFilter (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:204:13)\n    at Object.parse (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:252:18)\n    at Object.parseString (/opt/Rocket.Chat/programs/server/npm/node_modules/ldapjs/lib/filters/index.js:179:27)\n    at Client.search (/opt/Rocket.Chat/programs/server/npm/node_modules/ldapjs/lib/client/client.js:571:30)\n    at server/lib/ldap/Connection.ts:338:16\n    at new Promise (<anonymous>)\n    at server/lib/ldap/Connection.ts:337:10\n    at /opt/Rocket.Chat/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40\n => awaited here:\n    at Function.Promise.await (/opt/Rocket.Chat/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:56:12)\n    at server/lib/ldap/Manager.ts:74:15\n    at /opt/Rocket.Chat/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40"},"msg":"missing paren"}

@dusatvoj
Copy link
Author

Even LDAP sync ...

Sep 28 14:25:00 node6 rocketchat[1329925]: === UnHandledPromiseRejection ===
Sep 28 14:25:00 node6 rocketchat[1329925]: Error: missing paren
Sep 28 14:25:00 node6 rocketchat[1329925]:     at parseFilter (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:198:13)
Sep 28 14:25:00 node6 rocketchat[1329925]:     at parseFilter (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:204:13)
Sep 28 14:25:00 node6 rocketchat[1329925]:     at parseFilter (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:204:13)
Sep 28 14:25:00 node6 rocketchat[1329925]:     at Object.parse (/opt/Rocket.Chat/programs/server/npm/node_modules/ldap-filter/lib/index.js:252:18)
Sep 28 14:25:00 node6 rocketchat[1329925]:     at Object.parseString (/opt/Rocket.Chat/programs/server/npm/node_modules/ldapjs/lib/filters/index.js:179:27)
Sep 28 14:25:00 node6 rocketchat[1329925]:     at Client.search (/opt/Rocket.Chat/programs/server/npm/node_modules/ldapjs/lib/client/client.js:571:30)
Sep 28 14:25:00 node6 rocketchat[1329925]:     at server/lib/ldap/Connection.ts:535:15
Sep 28 14:25:00 node6 rocketchat[1329925]:     at /opt/Rocket.Chat/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40
Sep 28 14:25:00 node6 rocketchat[1329925]:  => awaited here:
Sep 28 14:25:00 node6 rocketchat[1329925]:     at Function.Promise.await (/opt/Rocket.Chat/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:56:12)
Sep 28 14:25:00 node6 rocketchat[1329925]:     at server/lib/ldap/Connection.ts:220:4
Sep 28 14:25:00 node6 rocketchat[1329925]:     at /opt/Rocket.Chat/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/fiber_pool.js:43:40
Sep 28 14:25:00 node6 rocketchat[1329925]: ---------------------------------
Sep 28 14:25:00 node6 rocketchat[1329925]: Errors like this can cause oplog processing errors.
Sep 28 14:25:00 node6 rocketchat[1329925]: Setting EXIT_UNHANDLEDPROMISEREJECTION will cause the process to exit allowing your service to automatically restart the process
Sep 28 14:25:00 node6 rocketchat[1329925]: Future node.js versions will automatically exit the process
Sep 28 14:25:00 node6 rocketchat[1329925]: =================================

@dusatvoj
Copy link
Author

There has to be one more parenthesis in filters...

(&(objectClass=*)!(pager=false)) -> (&(objectClass=*)(!(pager=false)))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant