Я пытаюсь развернуть рабочий сервер Nodejs на Windows на Linux-машине. Использование модуля паспорта ldapauth для входа на наш сервер LDAP компании я получаю:NodeJS, паспорт, паспорт-ldap ConnectionError: ldaps: //ldap.XXXX.com: 636 закрыт
«ConnectionError: LDAPS: //ldap.XXX.com: 636 закрыто» При развертывании окна я не имел никаких проблем,
Вот код сервера:
var express = require('express')
\t , http = require('http')
\t , express = require('express')
\t , routes = require('./routes')
\t , http = require('http')
\t , passport = require('passport')
\t , flash = require('connect-flash')
\t , fs = require('fs')
\t , ldapStrategy = require('passport-ldapauth')
\t , path = require('path');
var ldapGroupName = "XXX_GROUP";
var app = express();
var ldapOptions = {
\t server : {
\t \t url : 'ldaps://ldap.XXX.com:636',
\t \t searchBase : 'o=XXX.com',
\t \t searchFilter : '(uid={{username}})',
\t \t tlsOptions : {
\t \t \t ca : [ fs.readFileSync('/etc/ssl/certs/XXX.crt') ]
\t \t }
\t }
};
var opts = {
\t filter : '(cn='+ldapGroupName+')',
\t scope : 'sub'
};
//configure passport
passport.use(new ldapStrategy(ldapOptions));
var app = express();
var server = http.createServer(app);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger());
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.json({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb'}));
app.use(express.session({secret:'Password'}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'WebContent')));
passport.serializeUser(function(user, done) {
\t done(null, user);
});
passport.deserializeUser(function(id, done) {
\t done(null, id);
});
app.post('/login', function(req, res, next) {
\t passport.authenticate('ldapauth', function(err, user, info) {
\t \t if (info) {
\t \t \t console.log('info: ' + info.message);
\t \t \t res.send({
\t \t \t \t status : 'err',
\t \t \t \t message : info.message
\t \t \t });
\t \t \t return;
\t \t }
\t \t if (err) {
\t \t \t console.log('err: ' + err);
\t \t \t res.send({
\t \t \t \t status : 'err',
\t \t \t \t message : err
\t \t \t });
\t \t \t return;
\t \t }
\t \t if (!user) {
\t \t \t return res.redirect('/');
\t \t }
\t \t req.logIn(user, function(err) {
\t \t \t req.session.cookie.expires = new Date(Date.now() + 1000 * 60 * 30);
\t \t \t if (err) {
\t \t \t \t return next(err);
\t \t \t }
\t \t \t return res.send({
\t \t \t \t status : 'ok' ,
\t \t \t \t name : user.givenName
\t \t \t });
\t \t });
\t })(req, res, next);
});
server.listen(4002);
console.log("started port: 4002");
Am я пропускаю что-то? мне нужно установить сертификацию?