fix: check for header spoofing regardless of fallbacks state

This commit is contained in:
Stavros
2026-08-23 12:18:18 +03:00
parent 8614f8768b
commit 9da7d3c7be
+5 -5
View File
@@ -484,19 +484,19 @@ func (controller *ProxyController) getExtAuthzContext(c *gin.Context) (ProxyCont
}, nil
}
func (controller *ProxyController) determineAuthModules(proxy ProxyType) []AuthModuleType {
func (controller *ProxyController) determineAuthModules(proxy ProxyType, fallbacks bool) []AuthModuleType {
switch proxy {
case Traefik, Caddy:
return []AuthModuleType{ForwardAuth}
case Envoy:
authModules := []AuthModuleType{ExtAuthz}
if !controller.config.Experimental.DisableAuthModuleFallback {
if fallbacks {
authModules = append(authModules, ForwardAuth)
}
return authModules
case Nginx:
authModules := []AuthModuleType{AuthRequest}
if !controller.config.Experimental.DisableAuthModuleFallback {
if fallbacks {
authModules = append(authModules, ForwardAuth)
}
return authModules
@@ -578,13 +578,13 @@ func (controller *ProxyController) getProxyContext(c *gin.Context) (ProxyContext
controller.log.App.Debug().Msgf("Determined proxy type: %v", proxy)
authModules := controller.determineAuthModules(proxy)
authModules := controller.determineAuthModules(proxy, !controller.config.Experimental.DisableAuthModuleFallback)
if len(authModules) == 0 {
return ProxyContext{}, fmt.Errorf("no auth modules supported for proxy: %v", req.Proxy)
}
err = controller.ensureNoMultipleAuthModules(c, authModules)
err = controller.ensureNoMultipleAuthModules(c, controller.determineAuthModules(proxy, true))
if err != nil {
return ProxyContext{}, err