Merge pull request #770 from SISheogorath/fix/ldapUUID

Add check for undefined UUID
This commit is contained in:
Christoph (Sheogorath) Kern 2018-03-18 15:13:51 +01:00 committed by GitHub
commit 5361a97188
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -23,11 +23,18 @@ passport.use(new LDAPStrategy({
tlsOptions: config.ldap.tlsOptions || null tlsOptions: config.ldap.tlsOptions || null
} }
}, function (user, done) { }, function (user, done) {
var uuid = user.uidNumber || user.uid || user.sAMAccountName var uuid = user.uidNumber || user.uid || user.sAMAccountName || undefined
if (config.ldap.useridField && user[config.ldap.useridField]) { if (config.ldap.useridField && user[config.ldap.useridField]) {
uuid = user[config.ldap.useridField] uuid = user[config.ldap.useridField]
} }
if (typeof uuid === 'undefined') {
throw new Error('Could not determine UUID for LDAP user. Check that ' +
'either uidNumber, uid or sAMAccountName is set in your LDAP directory ' +
'or use another unique attribute and configure it using the ' +
'"useridField" option in ldap settings.')
}
var username = uuid var username = uuid
if (config.ldap.usernameField && user[config.ldap.usernameField]) { if (config.ldap.usernameField && user[config.ldap.usernameField]) {
username = user[config.ldap.usernameField] username = user[config.ldap.usernameField]