我正在用Node.js 6.11.0和MongoDB開發一個JavaScript web服務。我的Web服務需要執行LDAP查詢。爲什麼我無法訪問LDAP的所有屬性?
我正在使用ldapjs包(版本1.0.1)。下面我LDAP模塊的JavaScript文件:
var ldap = require("ldapjs");
function bind(username, password, callback) {
try {
let client = _getClient(global.config.ldap.host);
client.bind(username, password, function (err) {
callback(err, client);
});
} catch (err) {
callback(err);
}
}
function search(client, dn, opts, callback) {
let arr = [];
if (!opts) opts = {};
client.search(dn, opts, function (err, res) {
if (err) {
callback(err);
return;
}
res.on('searchEntry', function (entry) {
arr.push(entry);
});
res.on('error', function (err) {
callback(err);
});
res.on('end', function (result) {
global.logger.log('status: ' + result.status);
callback(undefined, arr);
});
});
}
function _getClient(host) {
return ldap.createClient({
url: host
});
}
exports.bind = bind;
exports.search = search;
我這個代碼查詢:
let appUser = "utente";
let appPass = "password";
let userDn = global.config.userDn.replace("{uid}", appUser);
ldapUtils.bind(userDn, appPass, function (err, client) {
if (err) {
return;
}
global.logger.info("Bind success...");
var opts = {
scope: "sub"
};
ldapUtils.search(client, global.config.shopsDn, opts, function (err, data) {
if (err) {
global.logger.error(err);
return;
}
global.logger.info("Search success...");
data[3].attributes[0]._vals[0...n]; // Here I cannot view all attributes.
res.send();
});
});
我不能查看我Apache目錄工作室使用相同的驗證參數與查看所有屬性。
你能幫助我嗎?
編輯
我指定的屬性,但問題依然存在:
var opts = {
scope: "sub",
attributes: ["dn", "cn", "customAttribute"]
};
感謝
嗨瑞恩使用,我編輯的問題。 – ilMattion