Skip to content

Commit 670ef85

Browse files
committed
Set X-Forwarded-For and X-Forwarded-Host
and X-Cloud-Trace-Context from cloud run
1 parent bef92be commit 670ef85

2 files changed

Lines changed: 21 additions & 3 deletions

File tree

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ func main() {
117117
return
118118
}
119119

120+
p.SetRequestHeaders(r)
120121
p.SetHost()
121-
slog.Info(r.Method, "path", r.URL.Path, "host", r.Host)
122122
p.ServeHTTP(w, r)
123123
})
124124

pkg/proxy/tls.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ type ReverseProxy struct {
1818
Target *url.URL
1919
Transport *http.Transport
2020
Config *config.Config
21+
Host []string
22+
Ip []string
23+
Trace []string
2124
}
2225

2326
func New(c *config.Config) *ReverseProxy {
@@ -60,17 +63,32 @@ func (p *ReverseProxy) SetHost() {
6063
p.Config.Machine.Host(),
6164
strconv.Itoa(p.Config.Port),
6265
)
63-
slog.Debug("Set host", "host", p.Target.Host)
66+
slog.Debug("Set machine host", "host", p.Target.Host)
6467
}
6568

6669
func (p *ReverseProxy) ServeHTTP(w http.ResponseWriter, r *http.Request) {
6770
rp := &httputil.ReverseProxy{
6871
Transport: p.Transport,
6972
Rewrite: func(pr *httputil.ProxyRequest) {
7073
pr.SetURL(p.Target)
71-
pr.SetXForwarded()
74+
pr.Out.Header["X-Cloud-Trace-Context"] = p.Trace
75+
pr.Out.Header["X-Forwarded-For"] = p.Ip
76+
pr.Out.Header["X-Forwarded-Host"] = p.Host
7277
},
7378
}
7479

7580
rp.ServeHTTP(w, r)
7681
}
82+
83+
func (p *ReverseProxy) SetRequestHeaders(r *http.Request) {
84+
p.Ip = []string{
85+
r.Header.Get("X-Forwarded-For"),
86+
}
87+
p.Host = []string{
88+
r.Host,
89+
}
90+
p.Trace = []string{
91+
r.Header.Get("X-Cloud-Trace-Context"),
92+
}
93+
slog.Debug("Request headers", "p.Ip", p.Ip, "p.Host", p.Host)
94+
}

0 commit comments

Comments
 (0)