Merge pull request #697 from cloudron-io/ldap_crashfix
Fix crash when LDAP server is unreachable
This commit is contained in:
commit
8ec6d969d1
@ -12,7 +12,6 @@ var Helper = require("./helper");
|
|||||||
var ldap = require("ldapjs");
|
var ldap = require("ldapjs");
|
||||||
|
|
||||||
var manager = null;
|
var manager = null;
|
||||||
var ldapclient = null;
|
|
||||||
var authFunction = localAuth;
|
var authFunction = localAuth;
|
||||||
|
|
||||||
module.exports = function() {
|
module.exports = function() {
|
||||||
@ -60,9 +59,6 @@ module.exports = function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!config.public && (config.ldap || {}).enable) {
|
if (!config.public && (config.ldap || {}).enable) {
|
||||||
ldapclient = ldap.createClient({
|
|
||||||
url: config.ldap.url
|
|
||||||
});
|
|
||||||
authFunction = ldapAuth;
|
authFunction = ldapAuth;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -287,12 +283,22 @@ function ldapAuth(client, user, password, callback) {
|
|||||||
var userDN = user.replace(/([,\\\/#+<>;"= ])/g, "\\$1");
|
var userDN = user.replace(/([,\\\/#+<>;"= ])/g, "\\$1");
|
||||||
var bindDN = Helper.config.ldap.primaryKey + "=" + userDN + "," + Helper.config.ldap.baseDN;
|
var bindDN = Helper.config.ldap.primaryKey + "=" + userDN + "," + Helper.config.ldap.baseDN;
|
||||||
|
|
||||||
|
var ldapclient = ldap.createClient({
|
||||||
|
url: Helper.config.ldap.url
|
||||||
|
});
|
||||||
|
|
||||||
|
ldapclient.on("error", function(err) {
|
||||||
|
log.error("Unable to connect to LDAP server", err);
|
||||||
|
callback(!err);
|
||||||
|
});
|
||||||
|
|
||||||
ldapclient.bind(bindDN, password, function(err) {
|
ldapclient.bind(bindDN, password, function(err) {
|
||||||
if (!err && !client) {
|
if (!err && !client) {
|
||||||
if (!manager.addUser(user, null)) {
|
if (!manager.addUser(user, null)) {
|
||||||
log.error("Unable to create new user", user);
|
log.error("Unable to create new user", user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ldapclient.unbind();
|
||||||
callback(!err);
|
callback(!err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user