aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorJohannes Zellner <johannes@nebulon.de>2015-06-27 19:05:20 +0200
committerJohannes Zellner <johannes@nebulon.de>2015-06-27 19:05:20 +0200
commit591ad40c9613c91069047ca0781a4b38fd2a8a1b (patch)
tree44cf2e3d52ead38eda311c38344294789f500ce8 /src
parentc10e69bfcf248c5e2c17b776e19c348b8acfecc7 (diff)
downloadSurfer-591ad40c9613c91069047ca0781a4b38fd2a8a1b.tar.gz
Surfer-591ad40c9613c91069047ca0781a4b38fd2a8a1b.tar.zst
Surfer-591ad40c9613c91069047ca0781a4b38fd2a8a1b.zip
Add ldap auth
Diffstat (limited to 'src')
-rw-r--r--src/auth.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/auth.js b/src/auth.js
new file mode 100644
index 0000000..3d2acce
--- /dev/null
+++ b/src/auth.js
@@ -0,0 +1,42 @@
1'use strict';
2
3var passport = require('passport'),
4 LdapStrategy = require('passport-ldapjs').Strategy;
5
6var LDAP_URL = process.env.LDAP_URL;
7var LDAP_USERS_BASE_DN = process.env.LDAP_USERS_BASE_DN;
8
9if (LDAP_URL && LDAP_USERS_BASE_DN) {
10 console.log('Enable ldap auth');
11
12 exports.ldap = passport.authenticate('ldap', {
13 successReturnToOrRedirect: '/',
14 failureRedirect: '/login',
15 failureFlash: true
16 });
17} else {
18 exports.ldap = function (req, res, next) {
19 console.log('ldap auth disabled');
20 next();
21 };
22}
23
24var opts = {
25 server: {
26 url: LDAP_URL,
27 },
28 base: LDAP_USERS_BASE_DN,
29 search: {
30 filter: '(uid={{username}})',
31 attributes: ['displayname', 'username', 'mail', 'uid'],
32 scope: 'sub'
33 },
34 uidTag: 'uid',
35 usernameField: 'username',
36 passwordField: 'password',
37};
38
39passport.use(new LdapStrategy(opts, function (profile, done) {
40 console.log('ldap', profile);
41 done(null, profile);
42}));