Source: src/ldap_auth/ldap_auth.js

/**
 * @file ldap_auth
 * @summary Configuration de l'authentification LDAP du backend via passport-ldap
 */
import passport from 'passport';
import LdapStrategy from 'passport-ldapauth';
import session from 'express-session';
import fs from 'fs';

function setupLdapAuth(server) {
    var config = JSON.parse(fs.readFileSync('config.json', 'utf8'));
    
    passport.use(new LdapStrategy({
        server: {
            url: config.ldap.server,
            searchBase: config.ldap.searchBase,
            searchFilter: config.ldap.searchFilter
        }
    }));

    server.use(session({ 
        secret: config.sessionSecret,
        //store: a modifier avant de lancer en prod
        //voir les autres options
        resave: true,
        saveUninitialized: false
    }));
    server.use(passport.initialize());
    server.use(passport.session());

    passport.serializeUser(function(user, done) {
        done(null, user);
    });

    passport.deserializeUser(function(user, done) {
        done(null, user);
    });

    // Returns middleware that parses cookies
    //server.use(cookieParser());
}

export default setupLdapAuth;