2016-08-16 12 views
2

Я создаю auth middleware app с использованием LDAP, и у меня возникают трудности с поиском работы.ldapjs создают насмешливые пользователи и выполняют поиск

Я использую Mocha для испытаний, и я создал util.js создать макет сервера ldapjs:

let server = require('../mocks/ldapServer'); 
const ldap = require('ldapjs');  

let ldapEntities = { 
    'cn=root,dc=example,dc=com,o=example': { 
    dn: 'cn=root,dc=example,dc=com', 
    objectclass: 'organizationalRole', 
    cn: 'Manager' 
    }, 
    'cn=ABC,dc=example,dc=com,o=example': { 
    dn: 'cn=ABC,dc=example,dc=com,o=example', 
    objectclass: 'organizationalUnit', 
    cn: 'ABC' 
    }, 
    'cn=Bob Johnson,ou=ABC,dc=example,dc=com,o=example': { 
    cn: 'Bob Johnson', 
    dn: 'cn=Bob Johnson,ou=ABC,dc=example,dc=com,o=example', 
    sn: 'Johnson', 
    objectClass: 'inetOrgPerson' 
    }, 
    'cn=Don Doddson,dc=example,dc=com,o=example': { 
    cn: 'Don Doddson', 
    dn: 'cn=Don Doddson,dc=example,dc=com,o=example', 
    sn: 'Doddson', 
    objectClass: 'inetOrgPerson', 
    userPassword: 'rubbishpassword' 
    } 
};  

before(done => { 
    server.start(1389,() => {  

    let ldapClient = ldap.createClient({ 
     url: process.env.DIRECTORY_SYSTEM_AGENT 
    });  

    ldapClient.bind(process.env.LDAP_ADMIN, process.env.LDAP_SECRET, error => {  

     if (error) { 
     return console.log('Error binding to LDAP: ' + error.message); 
     }  

     //Bound to server, creating test accounts 
     for (let i in ldapEntities) { 
     ldapClient.add(i, ldapEntities[i], error => { 
      if (error) { 
      console.error(error); 
      } 
     }); 
     }  

    }); 
    done(); 
    }); 
});  

after(done => { 
    server.stop(done); 
}); 

Я ищу с помощью:

let dn = 'cn=root,dc=example,dc=com,o=example'; 
let opts = { 
    filter: '(cn=Don Doddson)', 
    scope: 'sub' 
} 

client.search(dn, opts, (error, result) => { ... 

Ничто не является 'ломка' , но я получаю идентификатор SearchEntry из 2, а не детали, которые я хочу.

Спасибо!

ответ

1

Этот вопрос Я не задал конечную точку для каждого ldapEntities.

0

Похоже, опечатка в дп суперпользователя в ldapEntities определения

дп: 'сп = корень, DC = пример, DC = ком, о = пример',

+0

Это не работает без этого –