你的位置:首页 > Java教程

[Java教程]node.js下LDAP查询实践


目标:

从一个LDAP Server获取uid=kxh的用户数据

LDAP地址为:ldap://10.233.21.116:389

 

在工程根目录中,先npm一个LDAP的访问库ldpajs

npm install ldapjs

在工程根目录中,创建一个app.js

var ldap = require("ldapjs");//创建LDAP client,把服务器url传入var client = ldap.createClient({ url: 'ldap://10.203.24.216:389'});//创建LDAP查询选项//filter的作用就是相当于SQL的条件var opts = { filter: '(uid=kxh)', //查询条件过滤器,查找uid=kxh的用户节点 scope: 'sub',    //查询范围 timeLimit: 500    //查询超时};//将client绑定LDAP Server//第一个参数:是用户,必须是从根节点到用户节点的全路径//第二个参数:用户密码client.bind('uid=supbind,cn=users,dc=tiger,dc=com', '123456', function (err, res1) {  //开始查询  //第一个参数:查询基础路径,代表在查询用户信心将在这个路径下进行,这个路径是由根节开始  //第二个参数:查询选项  client.search('DC=tiger,DC=com', opts, function (err, res2) {    //查询结果事件响应    res2.on('searchEntry', function (entry) {            //获取查询的对象      var user = entry.object;      var userText = JSON.stringify(user,null,2);      console.log(userText);          });        res2.on('searchReference', function(referral) {      console.log('referral: ' + referral.uris.join());    });          //查询错误事件    res2.on('error', function(err) {      console.error('error: ' + err.message);      //unbind操作,必须要做      client.unbind();    });        //查询结束    res2.on('end', function(result) {      console.log('search status: ' + result.status);      //unbind操作,必须要做      client.unbind();    });          });  });

 

参考:

filter语法:http://www.ldapexplorer.com/en/manual/109010000-ldap-filter-syntax.htm

ldapjs:https://www.npmjs.com/package/ldapjs