mirror of
https://github.com/tinyauthapp/tinyauth.git
synced 2026-09-04 04:53:30 +08:00
fix: check for header spoofing regardless of fallbacks state
This commit is contained in:
@@ -484,19 +484,19 @@ func (controller *ProxyController) getExtAuthzContext(c *gin.Context) (ProxyCont
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (controller *ProxyController) determineAuthModules(proxy ProxyType) []AuthModuleType {
|
func (controller *ProxyController) determineAuthModules(proxy ProxyType, fallbacks bool) []AuthModuleType {
|
||||||
switch proxy {
|
switch proxy {
|
||||||
case Traefik, Caddy:
|
case Traefik, Caddy:
|
||||||
return []AuthModuleType{ForwardAuth}
|
return []AuthModuleType{ForwardAuth}
|
||||||
case Envoy:
|
case Envoy:
|
||||||
authModules := []AuthModuleType{ExtAuthz}
|
authModules := []AuthModuleType{ExtAuthz}
|
||||||
if !controller.config.Experimental.DisableAuthModuleFallback {
|
if fallbacks {
|
||||||
authModules = append(authModules, ForwardAuth)
|
authModules = append(authModules, ForwardAuth)
|
||||||
}
|
}
|
||||||
return authModules
|
return authModules
|
||||||
case Nginx:
|
case Nginx:
|
||||||
authModules := []AuthModuleType{AuthRequest}
|
authModules := []AuthModuleType{AuthRequest}
|
||||||
if !controller.config.Experimental.DisableAuthModuleFallback {
|
if fallbacks {
|
||||||
authModules = append(authModules, ForwardAuth)
|
authModules = append(authModules, ForwardAuth)
|
||||||
}
|
}
|
||||||
return authModules
|
return authModules
|
||||||
@@ -578,13 +578,13 @@ func (controller *ProxyController) getProxyContext(c *gin.Context) (ProxyContext
|
|||||||
|
|
||||||
controller.log.App.Debug().Msgf("Determined proxy type: %v", proxy)
|
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 {
|
if len(authModules) == 0 {
|
||||||
return ProxyContext{}, fmt.Errorf("no auth modules supported for proxy: %v", req.Proxy)
|
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 {
|
if err != nil {
|
||||||
return ProxyContext{}, err
|
return ProxyContext{}, err
|
||||||
|
|||||||
Reference in New Issue
Block a user