Various fixes.

This commit is contained in:
Julien Fontanet 2015-03-18 17:07:19 +01:00
parent de5ba5d0d3
commit f6b3f898de

View File

@ -4,27 +4,34 @@
var Bluebird = require('bluebird'); var Bluebird = require('bluebird');
var createClient = require('ldapjs').createClient; var createClient = require('ldapjs').createClient;
var escape = require('ldapjs/lib/filters/escape'); var escape = require('ldapjs/lib/filters/escape').escape;
//==================================================================== //====================================================================
function AuthLdap(conf) { function AuthLdap(conf) {
var base = conf.base ? ',' + conf.base : ''; var base = conf.base ? ',' + conf.base : '';
var clientOpts = {
url: conf.uri,
};
this._provider = function (credentials) { this._provider = function (credentials) {
var username = credentials.username;
var password = credentials.password;
if (username === undefined || password === undefined) {
return Bluebird.reject(new Error('invalid credentials'));
}
return new Bluebird(function (resolve, reject) { return new Bluebird(function (resolve, reject) {
var client = createClient({ var client = createClient(clientOpts);
url: conf.uri,
});
client.bind( client.bind(
'uid=' + escape(credentials.username) + base, 'uid=' + escape(username) + base,
credentials.password, password,
function (error) { function (error) {
if (error) { if (error) {
reject(error); reject(error);
} else { } else {
resolve(); resolve({ username });
} }
client.unbind(); client.unbind();