Skip to content

Commit

Permalink
Merge pull request #3754 from maxlajoie99/feature/experimental-proxy-…
Browse files Browse the repository at this point in the history
…support

Experimental proxy support by manually following redirects
  • Loading branch information
advplyr authored Jan 1, 2025
2 parents c8a0592 + f3918a4 commit eb505a0
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion server/Server.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ const util = require('util')
const fs = require('./libs/fsExtra')
const fileUpload = require('./libs/expressFileupload')
const cookieParser = require('cookie-parser')
const axios = require('axios')

const { version } = require('../package.json')

Expand Down Expand Up @@ -54,7 +55,26 @@ class Server {
global.XAccel = process.env.USE_X_ACCEL
global.AllowCors = process.env.ALLOW_CORS === '1'

if (process.env.DISABLE_SSRF_REQUEST_FILTER === '1') {
if (process.env.EXP_PROXY_SUPPORT === '1') {
// https://github.com/advplyr/audiobookshelf/pull/3754
Logger.info(`[Server] Experimental Proxy Support Enabled, SSRF Request Filter was Disabled`)
global.DisableSsrfRequestFilter = () => true

axios.defaults.maxRedirects = 0
axios.interceptors.response.use(
(response) => response,
(error) => {
if ([301, 302].includes(error.response?.status)) {
return axios({
...error.config,
url: error.response.headers.location
})
}

return Promise.reject(error)
}
)
} else if (process.env.DISABLE_SSRF_REQUEST_FILTER === '1') {
Logger.info(`[Server] SSRF Request Filter Disabled`)
global.DisableSsrfRequestFilter = () => true
} else if (process.env.SSRF_REQUEST_FILTER_WHITELIST?.length) {
Expand Down

0 comments on commit eb505a0

Please sign in to comment.