ldapjs连接到LDAP(LDAP.forumsys.com)失败
这是一个在线LDPA测试服务器 所以我做了一些简单的脚本来测试它,但我总是得到不想要的响应 这是我的密码:ldapjs连接到LDAP(LDAP.forumsys.com)失败,ldap,openldap,ldapjs,Ldap,Openldap,Ldapjs,这是一个在线LDPA测试服务器 所以我做了一些简单的脚本来测试它,但我总是得到不想要的响应 这是我的密码: const ldap = require('ldapjs'); const assert = require('assert'); // LDAP Connection Settings const server = "ldap.forumsys.com"; const uid = "tesla" const password = "password"; // User password
const ldap = require('ldapjs');
const assert = require('assert');
// LDAP Connection Settings
const server = "ldap.forumsys.com";
const uid = "tesla"
const password = "password"; // User password
// Create client and bind to AD
const client = ldap.createClient({
url: `ldap://${server}`
});
// Search AD for user
const searchOptions = {
filter: '(uid=${uid})'
};
// client.bind(`uid=tesla,dc=example,dc=com`,password,err => {
// assert.ifError(err);
// });
client.search(`cn=read-only-admin,dc=example,dc=com`,searchOptions,(err,res) => {
assert.ifError(err);
res.on('searchEntry', entry => {
console.log(entry.object.name);
});
res.on('searchReference', referral => {
console.log('referral: ' + referral.uris.join());
});
res.on('error', err => {
console.error('error: ' + err.message);
});
res.on('end', result => {
console.log(result);
});
});
// Wrap up
client.unbind( err => {
assert.ifError(err);
});
我通过运行app.js来恢复这一点
SearchResponse {
messageID: 1,
protocolOp: 101,
controls: [],
log:
Logger {
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
_isSimpleChild: true,
_level: 30,
streams: [ [Object] ],
serializers: { req: [Function], res: [Function], err: [Function] },
src: false,
fields:
{ name: 'ldapjs',
component: 'client',
hostname: 'will-ThinkPad-T440p',
pid: 17485,
clazz: 'Client' } },
status: 0,
matchedDN: '',
errorMessage: '',
referrals: [],
connection:
Socket {
connecting: false,
_hadError: false,
_handle:
TCP {
reading: true,
owner: [Circular],
onread: [Function: onread],
onconnection: null,
writeQueueSize: 0 },
_parent: null,
_host: 'ldap.forumsys.com',
_readableState:
ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: [Object],
length: 0,
pipes: null,
pipesCount: 0,
flowing: true,
ended: false,
endEmitted: false,
reading: false,
sync: false,
needReadable: true,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
destroyed: false,
defaultEncoding: 'utf8',
awaitDrain: 0,
readingMore: false,
decoder: null,
encoding: null },
readable: true,
domain: null,
_events:
{ finish: [Function: onSocketFinish],
_socketEnd: [Function: onSocketEnd],
data: [Function: onData],
close: [Object],
end: [Function: onEnd],
error: [Function: onSocketError],
timeout: [Function: onTimeout] },
_eventsCount: 7,
_maxListeners: undefined,
_writableState:
WritableState {
objectMode: false,
highWaterMark: 16384,
finalCalled: false,
needDrain: false,
ending: false,
ended: false,
finished: false,
destroyed: false,
decodeStrings: false,
defaultEncoding: 'utf8',
length: 0,
writing: false,
corked: 0,
sync: false,
bufferProcessing: false,
onwrite: [Function: bound onwrite],
writecb: null,
writelen: 0,
bufferedRequest: null,
lastBufferedRequest: null,
pendingcb: 0,
prefinished: false,
errorEmitted: false,
bufferedRequestCount: 0,
corkedRequestsFree: [Object] },
writable: true,
allowHalfOpen: false,
_bytesDispatched: 79,
_sockname: null,
_pendingData: null,
_pendingEncoding: '',
server: null,
_server: null,
[Symbol(asyncId)]: 8,
[Symbol(bytesRead)]: 0 },
attributes: [],
notAttributes: [],
sentEntries: 0 }
不包含有关“特斯拉”的任何信息的……可能是本节:
// Search AD for user
const searchOptions = {
filter: '(uid=${uid})'
};
需要像上面的url设置那样的倒勾吗?如果这是一个动态值,则应添加这些值以将其转换为字符串文字,如:
// Search AD for user
const searchOptions = {
filter: `(uid=${uid})`
};
以上部分不正确。
应该是
const searchOptions = {
filter: `(uid=${uid})`
};
我认为古斯塔夫已经给出了正确的答案。但除此之外,原因是当使用“
时,变量替换并不像您预期的那样发生。要像这样构建字符串,需要使用`
无论如何,因为您已经编写了LDAP测试服务器,所以已经有编写的测试服务器可以实现这一点,例如,您可以使用
https://hub.docker.com/r/upekshejay/simple-ldap-test-server
您能否详细说明该响应是如何不需要的/失败的?怎么了?嘿,哈弗,是的。。我已经更新了帖子,添加了完整的回复,其中没有任何关于“特斯拉”的信息,谢谢。
const searchOptions = {
filter: `(uid=${uid})`
};