- Added conditional injection of x-proxy-by zoraxy header by only injecting tracker when -dev flag is set to true
This commit is contained in:
Toby Chui
2025-09-24 21:53:11 +08:00
parent 778df1af0f
commit f98e1b8218
5 changed files with 13 additions and 5 deletions

View File

@@ -75,7 +75,8 @@ type ResponseRewriteRuleSet struct {
DisableChunkedTransferEncoding bool //Disable chunked transfer encoding
/* System Information Payload */
Version string //Version number of Zoraxy, use for X-Proxy-By
DevelopmentMode bool //Inject dev mode information to requests
Version string //Version number of Zoraxy, use for X-Proxy-By
}
type requestCanceler interface {
@@ -284,7 +285,7 @@ func (p *ReverseProxy) ProxyHTTP(rw http.ResponseWriter, req *http.Request, rrr
// Add user defined headers (to upstream)
injectUserDefinedHeaders(outreq.Header, rrr.UpstreamHeaders)
// Rewrite outbound UA, must be after user headers
// Rewrite outbound UA top upstream, must be after user headers
rewriteUserAgent(outreq.Header, "Zoraxy/"+rrr.Version)
//Fix proxmox transfer encoding bug if detected Proxmox Cookie
@@ -323,7 +324,9 @@ func (p *ReverseProxy) ProxyHTTP(rw http.ResponseWriter, req *http.Request, rrr
}
//Add debug X-Proxy-By tracker
res.Header.Set("x-proxy-by", "zoraxy/"+rrr.Version)
if rrr.DevelopmentMode {
res.Header.Set("x-proxy-by", "zoraxy/"+rrr.Version)
}
//Custom Location header rewriter functions
if res.Header.Get("Location") != "" {

View File

@@ -172,6 +172,7 @@ func (router *Router) StartProxyService() error {
NoRemoveHopByHop: endpointProxyRewriteRules.DisableHopByHopHeaderRemoval,
PathPrefix: "",
Version: sep.parent.Option.HostVersion,
DevelopmentMode: sep.parent.Option.DevelopmentMode,
})
return
}

View File

@@ -196,6 +196,7 @@ func (h *ProxyHandler) hostRequest(w http.ResponseWriter, r *http.Request, targe
HostHeaderOverwrite: headerRewriteOptions.RequestHostOverwrite,
NoRemoveHopByHop: headerRewriteOptions.DisableHopByHopHeaderRemoval,
Version: target.parent.Option.HostVersion,
DevelopmentMode: target.parent.Option.DevelopmentMode,
})
//validate the error
@@ -289,6 +290,7 @@ func (h *ProxyHandler) vdirRequest(w http.ResponseWriter, r *http.Request, targe
DisableChunkedTransferEncoding: target.parent.DisableChunkedTransferEncoding,
HostHeaderOverwrite: headerRewriteOptions.RequestHostOverwrite,
Version: target.parent.parent.Option.HostVersion,
DevelopmentMode: target.parent.parent.Option.DevelopmentMode,
})
var dnsError *net.DNSError

View File

@@ -69,7 +69,8 @@ type RouterOption struct {
OAuth2Router *oauth2.OAuth2Router //OAuth2Router router for OAuth2Router authentication
/* Utilities */
Logger *logger.Logger //Logger for reverse proxy requets
DevelopmentMode bool //Enable development mode, provide more debug information in headers
Logger *logger.Logger //Logger for reverse proxy requests
}
/* Router Object */

View File

@@ -122,7 +122,8 @@ func ReverseProxyInit() {
LoadBalancer: loadBalancer,
PluginManager: pluginManager,
/* Utilities */
Logger: SystemWideLogger,
DevelopmentMode: *development_build,
Logger: SystemWideLogger,
})
if err != nil {
SystemWideLogger.PrintAndLog("proxy-config", "Unable to create dynamic proxy router", err)