diff --git a/src/lib/app.ts b/src/lib/app.ts index 6de9ec9fc4..f5a064ad9b 100644 --- a/src/lib/app.ts +++ b/src/lib/app.ts @@ -31,6 +31,7 @@ import NotFoundError from './error/notfound-error'; import { bearerTokenMiddleware } from './middleware/bearer-token-middleware'; import { auditAccessMiddleware } from './middleware'; import { originMiddleware } from './middleware/origin-middleware'; +import { unlessHasHeader } from './middleware/unless-has-header-middleware'; export default async function getApp( config: IUnleashConfig, @@ -90,7 +91,7 @@ export default async function getApp( ), ); if (unleashSession) { - app.use(unleashSession); + app.use(unlessHasHeader('authorization', unleashSession)); } app.use(secureHeaders(config)); app.use(express.urlencoded({ extended: true })); diff --git a/src/lib/middleware/unless-has-header-middleware.ts b/src/lib/middleware/unless-has-header-middleware.ts new file mode 100644 index 0000000000..70498c725b --- /dev/null +++ b/src/lib/middleware/unless-has-header-middleware.ts @@ -0,0 +1,11 @@ +import type { RequestHandler } from 'express'; + +export const unlessHasHeader = + (header: string, middleware: RequestHandler): RequestHandler => + (req, res, next) => { + if (req.headers[header]) { + return next(); + } else { + return middleware(req, res, next); + } + };