Various fixes.
This commit is contained in:
parent
de5ba5d0d3
commit
f6b3f898de
@ -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();
|
||||||
|
Loading…
Reference in New Issue
Block a user