Socket
Socket
Sign inDemoInstall

xo-server-auth-ldap

Package Overview
Dependencies
74
Maintainers
2
Versions
16
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.6.3 to 0.6.4

268

dist/index.js

@@ -36,5 +36,5 @@ 'use strict';

var _bind3 = require('lodash/bind');
var _bind4 = require('lodash/bind');
var _bind4 = _interopRequireDefault(_bind3);
var _bind5 = _interopRequireDefault(_bind4);

@@ -155,6 +155,6 @@ var _eventToPromise = require('event-to-promise');

required: ['username', 'password']
};
// ===================================================================
// ===================================================================
};
var AuthLdap = function () {

@@ -166,3 +166,3 @@ function AuthLdap(xo) {

this._authenticate = (0, _bind4.default)(this._authenticate, this);
this._authenticate = (0, _bind5.default)(this._authenticate, this);
}

@@ -173,3 +173,3 @@

value: function () {
var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(conf) {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(conf) {
var clientOpts, _bind2, _conf$checkCertificat, checkCertificate, certificateAuthorities, tlsOptions, credentials, searchBase, _conf$filter, searchFilter;

@@ -262,5 +262,3 @@

value: function () {
var _ref3 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(_ref4) {
var _this = this;
var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(_ref4) {
var username = _ref4.username,

@@ -270,10 +268,10 @@ password = _ref4.password;

var client, _ret;
var client, _bind3, search, credentials, entries, response, _ref5, status, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry;
return _regenerator2.default.wrap(function _callee3$(_context3) {
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context3.prev = _context3.next) {
switch (_context2.prev = _context2.next) {
case 0:
if (!(username === undefined || password === undefined)) {
_context3.next = 3;
_context2.next = 3;
break;

@@ -284,185 +282,157 @@ }

return _context3.abrupt('return', null);
return _context2.abrupt('return', null);
case 3:
client = (0, _ldapjs.createClient)(this._clientOpts);
_context3.prev = 4;
return _context3.delegateYield(_regenerator2.default.mark(function _callee2() {
var bind, search, credentials, entries, response, _ref5, status, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, entry;
_context2.prev = 4;
return _regenerator2.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
// Promisify some methods.
bind = (0, _promiseToolbox.promisify)(client.bind, client);
search = (0, _promiseToolbox.promisify)(client.search, client);
_context2.next = 4;
return (0, _eventToPromise2.default)(client, 'connect');
// Promisify some methods.
_bind3 = (0, _promiseToolbox.promisify)(client.bind, client);
search = (0, _promiseToolbox.promisify)(client.search, client);
_context2.next = 9;
return (0, _eventToPromise2.default)(client, 'connect');
case 4:
credentials = _this._credentials;
case 9:
credentials = this._credentials;
if (!credentials) {
_context2.next = 10;
break;
}
if (!credentials) {
_context2.next = 15;
break;
}
logger(`attempting to bind with as ${credentials.dn}...`);
_context2.next = 9;
return bind(credentials.dn, credentials.password);
logger(`attempting to bind with as ${credentials.dn}...`);
_context2.next = 14;
return _bind3(credentials.dn, credentials.password);
case 9:
logger(`successfully bound as ${credentials.dn}`);
case 14:
logger(`successfully bound as ${credentials.dn}`);
case 10:
case 15:
// Search for the user.
entries = [];
// Search for the user.
entries = [];
logger('searching for entries...');
_context2.next = 14;
return search(_this._searchBase, {
scope: 'sub',
filter: evalFilter(_this._searchFilter, {
name: username
})
});
logger('searching for entries...');
_context2.next = 19;
return search(this._searchBase, {
scope: 'sub',
filter: evalFilter(this._searchFilter, {
name: username
})
});
case 14:
response = _context2.sent;
case 19:
response = _context2.sent;
response.on('searchEntry', function (entry) {
logger('.');
entries.push(entry.json);
});
response.on('searchEntry', function (entry) {
logger('.');
entries.push(entry.json);
});
_context2.next = 18;
return (0, _eventToPromise2.default)(response, 'end');
_context2.next = 23;
return (0, _eventToPromise2.default)(response, 'end');
case 18:
_ref5 = _context2.sent;
status = _ref5.status;
case 23:
_ref5 = _context2.sent;
status = _ref5.status;
if (!status) {
_context2.next = 22;
break;
}
if (!status) {
_context2.next = 27;
break;
}
throw new Error('unexpected search response status: ' + status);
throw new Error('unexpected search response status: ' + status);
case 22:
case 27:
logger(`${entries.length} entries found`);
logger(`${entries.length} entries found`);
// Try to find an entry which can be bind with the given password.
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context2.prev = 26;
_iterator = (0, _getIterator3.default)(entries);
// Try to find an entry which can be bind with the given password.
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context2.prev = 31;
_iterator = (0, _getIterator3.default)(entries);
case 28:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
_context2.next = 44;
break;
}
case 33:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
_context2.next = 49;
break;
}
entry = _step.value;
_context2.prev = 30;
entry = _step.value;
_context2.prev = 35;
logger(`attempting to bind as ${entry.objectName}`);
_context2.next = 34;
return bind(entry.objectName, password);
logger(`attempting to bind as ${entry.objectName}`);
_context2.next = 39;
return _bind3(entry.objectName, password);
case 34:
logger(`successfully bound as ${entry.objectName} => ${username} authenticated`);
return _context2.abrupt('return', {
v: { username }
});
case 39:
logger(`successfully bound as ${entry.objectName} => ${username} authenticated`);
return _context2.abrupt('return', { username });
case 38:
_context2.prev = 38;
_context2.t0 = _context2['catch'](30);
case 43:
_context2.prev = 43;
_context2.t0 = _context2['catch'](35);
logger(`failed to bind as ${entry.objectName}: ${_context2.t0.message}`);
logger(`failed to bind as ${entry.objectName}: ${_context2.t0.message}`);
case 41:
_iteratorNormalCompletion = true;
_context2.next = 28;
break;
case 46:
_iteratorNormalCompletion = true;
_context2.next = 33;
break;
case 44:
_context2.next = 50;
break;
case 49:
_context2.next = 55;
break;
case 46:
_context2.prev = 46;
_context2.t1 = _context2['catch'](26);
_didIteratorError = true;
_iteratorError = _context2.t1;
case 51:
_context2.prev = 51;
_context2.t1 = _context2['catch'](31);
_didIteratorError = true;
_iteratorError = _context2.t1;
case 50:
_context2.prev = 50;
_context2.prev = 51;
case 55:
_context2.prev = 55;
_context2.prev = 56;
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
case 53:
_context2.prev = 53;
case 58:
_context2.prev = 58;
if (!_didIteratorError) {
_context2.next = 56;
break;
}
if (!_didIteratorError) {
_context2.next = 61;
break;
}
throw _iteratorError;
throw _iteratorError;
case 56:
return _context2.finish(53);
case 61:
return _context2.finish(58);
case 57:
return _context2.finish(50);
case 62:
return _context2.finish(55);
case 58:
case 63:
logger(`could not authenticate ${username}`);
return _context2.abrupt('return', {
v: null
});
logger(`could not authenticate ${username}`);
return _context2.abrupt('return', null);
case 60:
case 'end':
return _context2.stop();
}
}
}, _callee2, _this, [[26, 46, 50, 58], [30, 38], [51,, 53, 57]]);
})(), 't0', 6);
case 65:
_context2.prev = 65;
case 6:
_ret = _context3.t0;
if (!(typeof _ret === "object")) {
_context3.next = 9;
break;
}
return _context3.abrupt('return', _ret.v);
case 9:
_context3.prev = 9;
client.unbind();
return _context3.finish(9);
return _context2.finish(65);
case 12:
case 68:
case 'end':
return _context3.stop();
return _context2.stop();
}
}
}, _callee3, this, [[4,, 9, 12]]);
}, _callee2, this, [[4,, 65, 68], [31, 51, 55, 63], [35, 43], [56,, 58, 62]]);
}));

@@ -469,0 +439,0 @@

@@ -118,3 +118,3 @@ 'use strict';

array: function () {
var _ref6 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(schema, defaultValue, path) {
var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(schema, defaultValue, path) {
var items, i, itemSchema, promptItem, n;

@@ -135,3 +135,3 @@ return _regenerator2.default.wrap(function _callee2$(_context2) {

promptItem = function () {
var _ref7 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee() {
var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() {
return _regenerator2.default.wrap(function _callee$(_context) {

@@ -264,3 +264,3 @@ while (1) {

object: function () {
var _ref8 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee4(schema, defaultValue, path) {
var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(schema, defaultValue, path) {
var value, required, promptProperty;

@@ -279,3 +279,3 @@ return _regenerator2.default.wrap(function _callee4$(_context4) {

promptProperty = function () {
var _ref9 = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee3(schema, name) {
var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(schema, name) {
var subpath;

@@ -282,0 +282,0 @@ return _regenerator2.default.wrap(function _callee3$(_context3) {

@@ -45,3 +45,3 @@ #!/usr/bin/env node

(0, _execPromise2.default)(function () {
var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(args) {
var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(args) {
var config, plugin;

@@ -48,0 +48,0 @@ return _regenerator2.default.wrap(function _callee$(_context) {

{
"name": "xo-server-auth-ldap",
"version": "0.6.3",
"version": "0.6.4",
"license": "AGPL-3.0",

@@ -37,32 +37,26 @@ "description": "LDAP authentication plugin for XO-Server",

"babel-runtime": "^6.22.0",
"event-to-promise": "^0.7.0",
"exec-promise": "^0.6.1",
"inquirer": "^3.0.1",
"event-to-promise": "^0.8.0",
"exec-promise": "^0.7.0",
"inquirer": "^4.0.0",
"ldapjs": "^1.0.1",
"lodash": "^4.17.4",
"promise-toolbox": "^0.8.0"
"promise-toolbox": "^0.9.5"
},
"devDependencies": {
"babel-cli": "^6.22.2",
"babel-eslint": "^7.1.1",
"babel-plugin-lodash": "^3.2.11",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-preset-env": "^1.1.8",
"babel-preset-stage-3": "^6.22.0",
"cross-env": "^3.1.4",
"dependency-check": "^2.8.0",
"jest": "^18.1.0",
"rimraf": "^2.5.4",
"standard": "^8.6.0"
"babel-cli": "^6.24.1",
"babel-plugin-lodash": "^3.3.2",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-env": "^1.5.2",
"babel-preset-stage-3": "^6.24.1",
"cross-env": "^5.0.1",
"dependency-check": "^2.9.1",
"rimraf": "^2.6.1"
},
"scripts": {
"build": "cross-env NODE_ENV=production babel --source-maps --out-dir=dist/ src/",
"commitmsg": "npm test",
"dev": "cross-env NODE_ENV=development babel --watch --source-maps --out-dir=dist/ src/",
"dev-test": "jest --bail --watch",
"posttest": "standard && dependency-check ./package.json",
"posttest": "dependency-check ./package.json",
"prebuild": "rimraf dist/",
"predev": "npm run prebuild",
"prepublish": "npm run build",
"test": "jest"
"prepublish": "npm run build"
},

@@ -85,15 +79,3 @@ "babel": {

]
},
"jest": {
"testPathDirs": [
"<rootDir>/src"
],
"testRegex": "\\.spec\\.js$"
},
"standard": {
"ignore": [
"dist"
],
"parser": "babel-eslint"
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc