mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-03-01 05:29:41 +00:00
feat: proxy authenfication added
This commit is contained in:
parent
03da194953
commit
4875125ae9
6 changed files with 315 additions and 2 deletions
|
|
@ -64,6 +64,10 @@ class ServerSettings {
|
|||
this.authLoginCustomMessage = null
|
||||
this.authActiveAuthMethods = ['local']
|
||||
|
||||
// Proxy authentication settings
|
||||
this.authProxyHeaderName = null
|
||||
this.authProxyLogoutURL = null
|
||||
|
||||
// openid settings
|
||||
this.authOpenIDIssuerURL = null
|
||||
this.authOpenIDAuthorizationURL = null
|
||||
|
|
@ -147,6 +151,9 @@ class ServerSettings {
|
|||
this.authOpenIDAdvancedPermsClaim = settings.authOpenIDAdvancedPermsClaim || ''
|
||||
this.authOpenIDSubfolderForRedirectURLs = settings.authOpenIDSubfolderForRedirectURLs
|
||||
|
||||
this.authProxyHeaderName = settings.authProxyHeaderName || null
|
||||
this.authProxyLogoutURL = settings.authProxyLogoutURL || null
|
||||
|
||||
if (!Array.isArray(this.authActiveAuthMethods)) {
|
||||
this.authActiveAuthMethods = ['local']
|
||||
}
|
||||
|
|
@ -200,6 +207,16 @@ class ServerSettings {
|
|||
Logger.info(`[ServerSettings] Using allowIframe from environment variable`)
|
||||
this.allowIframe = true
|
||||
}
|
||||
|
||||
// Proxy authentication environment override
|
||||
if (process.env.AUTH_PROXY_HEADER_NAME) {
|
||||
Logger.info(`[ServerSettings] Using proxy header name from environment variable: ${process.env.AUTH_PROXY_HEADER_NAME}`)
|
||||
this.authProxyHeaderName = process.env.AUTH_PROXY_HEADER_NAME
|
||||
}
|
||||
if (process.env.AUTH_PROXY_LOGOUT_URL) {
|
||||
Logger.info(`[ServerSettings] Using proxy logout URL from environment variable: ${process.env.AUTH_PROXY_LOGOUT_URL}`)
|
||||
this.authProxyLogoutURL = process.env.AUTH_PROXY_LOGOUT_URL
|
||||
}
|
||||
}
|
||||
|
||||
toJSON() {
|
||||
|
|
@ -239,6 +256,8 @@ class ServerSettings {
|
|||
buildNumber: this.buildNumber,
|
||||
authLoginCustomMessage: this.authLoginCustomMessage,
|
||||
authActiveAuthMethods: this.authActiveAuthMethods,
|
||||
authProxyHeaderName: this.authProxyHeaderName,
|
||||
authProxyLogoutURL: this.authProxyLogoutURL,
|
||||
authOpenIDIssuerURL: this.authOpenIDIssuerURL,
|
||||
authOpenIDAuthorizationURL: this.authOpenIDAuthorizationURL,
|
||||
authOpenIDTokenURL: this.authOpenIDTokenURL,
|
||||
|
|
@ -271,7 +290,7 @@ class ServerSettings {
|
|||
}
|
||||
|
||||
get supportedAuthMethods() {
|
||||
return ['local', 'openid']
|
||||
return ['local', 'openid', 'proxy']
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -285,6 +304,8 @@ class ServerSettings {
|
|||
return {
|
||||
authLoginCustomMessage: this.authLoginCustomMessage,
|
||||
authActiveAuthMethods: this.authActiveAuthMethods,
|
||||
authProxyHeaderName: this.authProxyHeaderName,
|
||||
authProxyLogoutURL: this.authProxyLogoutURL,
|
||||
authOpenIDIssuerURL: this.authOpenIDIssuerURL,
|
||||
authOpenIDAuthorizationURL: this.authOpenIDAuthorizationURL,
|
||||
authOpenIDTokenURL: this.authOpenIDTokenURL,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue