From 60ecba7c80131e72846c7758d869b55b47c43da4 Mon Sep 17 00:00:00 2001 From: Abhilash Gnan Date: Sat, 13 Jun 2020 09:09:42 +0200 Subject: [PATCH 1/2] Error for redirect method changes --- agent/agent.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/agent/agent.go b/agent/agent.go index 4aea614..fcff9e0 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -200,6 +200,17 @@ func getGoogleClient(ctx context.Context) (*http.Client, error) { if err != nil { return nil, err } + + client.CheckRedirect = func(req *http.Request, via []*http.Request) error { + for _, prevReq := range via { + if prevReq.Method != req.Method { + return fmt.Errorf( + "Method change not allowed in redirect: %s changed to %s", prevReq.Method, req.Method) + } + } + return nil + } + client.Transport = utils.RoundTripperWithVMIdentity(ctx, client.Transport, *proxy, *disableGCEVM) client.Jar, err = cookiejar.New(&cookiejar.Options{ PublicSuffixList: publicsuffix.List, From 13a58f702c2805b84a3af9e4fa75edd40504eb33 Mon Sep 17 00:00:00 2001 From: Abhilash Gnan Date: Sat, 13 Jun 2020 09:25:35 +0200 Subject: [PATCH 2/2] cosmetic change --- agent/agent.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/agent/agent.go b/agent/agent.go index fcff9e0..9a9c3e4 100644 --- a/agent/agent.go +++ b/agent/agent.go @@ -205,7 +205,7 @@ func getGoogleClient(ctx context.Context) (*http.Client, error) { for _, prevReq := range via { if prevReq.Method != req.Method { return fmt.Errorf( - "Method change not allowed in redirect: %s changed to %s", prevReq.Method, req.Method) + "Method change not allowed in redirect: %s -> %s", prevReq.Method, req.Method) } } return nil