update passport to 0.6.0

Signed-off-by: Simon Smith <simonsmith5521@gmail.com>

Simon Smith committed Sep 7, 2023 at 08:26 UTC 403c313771ba9e8378a8c6c21c9313c85a3fe074
3 files changed +27 -1
meshcentral.js
+1 -1
@@ -3976,7 +3976,7 @@ function mainStart() {
3976 if (mstsc == false) { config.domains[i].mstsc = false; }
3977 if (config.domains[i].ssh == true) { if (nodeVersion < 11) { config.domains[i].ssh = false; } ssh = true; }
3978 if ((typeof config.domains[i].authstrategies == 'object')) {
3979 - if (passport == null) { passport = ['passport@0.5.3']; } // Passport v0.6.0 is broken with cookie-session, see https://github.com/jaredhanson/passport/issues/904
3979 + if (passport == null) { passport = ['passport']; } // Passport v0.6.0 requires a patch, see https://github.com/jaredhanson/passport/issues/904
3980 if ((typeof config.domains[i].authstrategies.twitter == 'object') && (typeof config.domains[i].authstrategies.twitter.clientid == 'string') && (typeof config.domains[i].authstrategies.twitter.clientsecret == 'string') && (passport.indexOf('passport-twitter') == -1)) { passport.push('passport-twitter'); }
3981 if ((typeof config.domains[i].authstrategies.google == 'object') && (typeof config.domains[i].authstrategies.google.clientid == 'string') && (typeof config.domains[i].authstrategies.google.clientsecret == 'string') && (passport.indexOf('passport-google-oauth20') == -1)) { passport.push('passport-google-oauth20'); }
3982 if ((typeof config.domains[i].authstrategies.github == 'object') && (typeof config.domains[i].authstrategies.github.clientid == 'string') && (typeof config.domains[i].authstrategies.github.clientsecret == 'string') && (passport.indexOf('passport-github2') == -1)) { passport.push('passport-github2'); }
webrelayserver.js
+13
@@ -86,6 +86,19 @@ module.exports.CreateWebRelayServer = function (parent, db, args, certificates,
86 }
87 if (args.sessiontime != null) { sessionOptions.maxAge = (args.sessiontime * 60000); } // sessiontime is minutes
88 obj.app.use(require('cookie-session')(sessionOptions));
89 + obj.app.use(function(request, response, next) { // Patch for passport 0.6.0 - https://github.com/jaredhanson/passport/issues/904
90 + if (request.session && !request.session.regenerate) {
91 + request.session.regenerate = function (cb) {
92 + cb()
93 + }
94 + }
95 + if (request.session && !request.session.save) {
96 + request.session.save = function (cb) {
97 + cb()
98 + }
99 + }
100 + next()
101 + });
102
103 // Add HTTP security headers to all responses
104 obj.app.use(function (req, res, next) {
webserver.js
+13
@@ -6115,6 +6115,19 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
6115 }
6116 if (obj.args.sessiontime != null) { sessionOptions.maxAge = (obj.args.sessiontime * 60000); } // sessiontime is minutes
6117 obj.app.use(require('cookie-session')(sessionOptions));
6118 + obj.app.use(function(request, response, next) { // Patch for passport 0.6.0 - https://github.com/jaredhanson/passport/issues/904
6119 + if (request.session && !request.session.regenerate) {
6120 + request.session.regenerate = function (cb) {
6121 + cb()
6122 + }
6123 + }
6124 + if (request.session && !request.session.save) {
6125 + request.session.save = function (cb) {
6126 + cb()
6127 + }
6128 + }
6129 + next()
6130 + });
6131
6132 // Handle all incoming web sockets, see if some need to be handled as web relays
6133 obj.app.ws('/*', function (ws, req, next) {