fix oidc paths with aliasport #6148
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Jun 4, 2024 at 10:26 UTC
69769927350a3146f1f4c4ce2dcebaea5937d3ae
1 file changed
+12
-8
webserver.js
+12
-8
@@ -6772,13 +6772,13 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
6772
if (domain.passport == null) { next(); return; }
6773
domain.passport.authenticate(`oidc-${domain.id}`, { failureRedirect: '/', failureFlash: true })(req, res, next);
6774
});
6775
- let redirectPath
6775
+ let redirectPath;
6776
if (typeof domain.authstrategies.oidc.client.redirect_uri == 'string') {
6777
- redirectPath = (new URL(domain.authstrategies.oidc.client.redirect_uri)).pathname
6777
+ redirectPath = (new URL(domain.authstrategies.oidc.client.redirect_uri)).pathname;
6778
} else if (Array.isArray(domain.authstrategies.oidc.client.redirect_uris)) {
6779
- redirectPath = (new URL(domain.authstrategies.oidc.client.redirect_uris[0])).pathname
6779
+ redirectPath = (new URL(domain.authstrategies.oidc.client.redirect_uris[0])).pathname;
6780
} else {
6781
- redirectPath = url + 'auth-oidc-callback'
6781
+ redirectPath = url + 'auth-oidc-callback';
6782
}
6783
parent.authLog('setupHTTPHandlers', `OIDC: Callback URL: ${redirectPath}`);
6784
obj.app.get(redirectPath, obj.bodyParser.urlencoded({ extended: false }), function (req, res, next) {
@@ -7417,15 +7417,19 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
7417
parent.authLog('setupDomainAuthStrategy', `OIDC: Adding Issuer Metadata: ${JSON.stringify(strategy.issuer)}`);
7418
issuer = new strategy.obj.openidClient.Issuer(Object.assign(issuer?.metadata, strategy.issuer));
7419
}
7420
- strategy.issuer = issuer?.metadata
7421
- strategy.obj.issuer = issuer
7420
+ strategy.issuer = issuer?.metadata;
7421
+ strategy.obj.issuer = issuer;
7422
+
7423
+ var httpport = ((args.aliasport != null) ? args.aliasport : args.port);
7424
+ var origin = 'https://' + (domain.dns ? domain.dns : parent.certificates.CommonName);
7425
+ if (httpport != 443) { origin += ':' + httpport; }
7426
7427
// Make sure redirect_uri and post_logout_redirect_uri exist before continuing
7428
if (!strategy.client.redirect_uri) {
7425
- strategy.client.redirect_uri = 'https://' + parent.config.settings.cert + url + 'auth-oidc-callback';
7429
+ strategy.client.redirect_uri = origin + url + 'auth-oidc-callback';
7430
}
7431
if (!strategy.client.post_logout_redirect_uri) {
7428
- strategy.client.post_logout_redirect_uri = 'https://' + parent.config.settings.cert + url + 'login';
7432
+ strategy.client.post_logout_redirect_uri = origin + url + 'login';
7433
}
7434
7435
// Create client and overwrite in options