2015-03-18 3 views
1

Я пытаюсь развернуть рабочий сервер 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 я пропускаю что-то? мне нужно установить сертификацию?

ответ

Смежные вопросы