@@ -2,7 +2,7 @@ import { Buffer } from "node:buffer"
22import { readFile } from "node:fs/promises"
33import { createRequire } from "node:module"
44import { join , resolve } from "node:path"
5- import { exit } from "node:process"
5+ import { exit , env } from "node:process"
66import h2o2 from "@hapi/h2o2"
77import { Server } from "@hapi/hapi"
88import { log } from "../../utils/log.js"
@@ -613,7 +613,27 @@ export default class HttpServer {
613613 const hasCustomAuthProvider =
614614 customizations ?. offline ?. customAuthenticationProvider
615615
616- if ( ! endpoint . authorizer && ! hasCustomAuthProvider ) {
616+ const authorizerOverrideHeader =
617+ request . headers [ "sls-offline-authorizer-override" ]
618+ const authorizerOverrideEnv = env . AUTHORIZER
619+ const hasAuthorizerOverride = [
620+ authorizerOverrideHeader ,
621+ authorizerOverrideEnv ,
622+ ] . some ( ( value ) => {
623+ if ( ! value ) return false
624+ try {
625+ parse ( value )
626+ return true
627+ } catch {
628+ return false
629+ }
630+ } )
631+
632+ if (
633+ ! endpoint . authorizer &&
634+ ! hasCustomAuthProvider &&
635+ ! hasAuthorizerOverride
636+ ) {
617637 log . debug ( "no authorizer configured, deleting authorizer payload" )
618638 delete event . requestContext . authorizer
619639 }
0 commit comments