server: prevent crash on blank DN bind
This commit is contained in:
parent
6ceef13014
commit
9c6142dbbf
|
@ -854,11 +854,11 @@ Server.prototype._getHandlerChain = function _getHandlerChain (req) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise, match via DN rules
|
// Otherwise, match via DN rules
|
||||||
assert.ok(req.dn)
|
|
||||||
const keys = this._sortedRouteKeys()
|
const keys = this._sortedRouteKeys()
|
||||||
let fallbackHandler = [noSuffixHandler]
|
let fallbackHandler = [noSuffixHandler]
|
||||||
// invalid DNs in non-strict mode are routed to the default handler
|
// invalid DNs in non-strict mode are routed to the default handler
|
||||||
const testDN = (typeof (req.dn) === 'string') ? DN.fromString(req.dn) : req.dn
|
const testDN = (typeof (req.dn) === 'string') ? DN.fromString(req.dn) : req.dn
|
||||||
|
assert.ok(testDN)
|
||||||
|
|
||||||
for (let i = 0; i < keys.length; i++) {
|
for (let i = 0; i < keys.length; i++) {
|
||||||
const suffix = keys[i]
|
const suffix = keys[i]
|
||||||
|
|
|
@ -257,6 +257,27 @@ tap.test('bind/unbind identity anonymous', function (t) {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
tap.test('does not crash on empty DN values', function (t) {
|
||||||
|
const server = ldap.createServer({
|
||||||
|
connectionRouter: function (c) {
|
||||||
|
server.newConnection(c)
|
||||||
|
server.emit('testconnection', c)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
server.listen(t.context.sock, function () {
|
||||||
|
const client = ldap.createClient({ socketPath: t.context.sock })
|
||||||
|
server.once('testconnection', () => {
|
||||||
|
client.bind('', 'pw', function (err) {
|
||||||
|
t.ok(err, 'blank bind dn throws error')
|
||||||
|
client.unbind(function () {
|
||||||
|
server.close(() => t.end())
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
tap.test('bind/unbind identity user', function (t) {
|
tap.test('bind/unbind identity user', function (t) {
|
||||||
const server = ldap.createServer({
|
const server = ldap.createServer({
|
||||||
connectionRouter: function (c) {
|
connectionRouter: function (c) {
|
||||||
|
|
Loading…
Reference in New Issue