From c1777f201a5dee0f69f063dfb3a2287ffd789c97 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Tue, 25 Feb 2020 12:14:32 -0500 Subject: [PATCH] 15954: Propagate remote param. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- lib/controller/handler_test.go | 21 +++++++++++++++++++++ sdk/go/arvados/api.go | 1 + 2 files changed, 22 insertions(+) diff --git a/lib/controller/handler_test.go b/lib/controller/handler_test.go index 6b1fa1a0b6..f09203f724 100644 --- a/lib/controller/handler_test.go +++ b/lib/controller/handler_test.go @@ -19,6 +19,7 @@ import ( "git.arvados.org/arvados.git/sdk/go/arvados" "git.arvados.org/arvados.git/sdk/go/arvadostest" + "git.arvados.org/arvados.git/sdk/go/auth" "git.arvados.org/arvados.git/sdk/go/ctxlog" "git.arvados.org/arvados.git/sdk/go/httpserver" "github.com/prometheus/client_golang/prometheus" @@ -229,6 +230,26 @@ func (s *HandlerSuite) TestValidateV2APIToken(c *check.C) { c.Check(user.Authorization.TokenV2(), check.Equals, arvadostest.ActiveTokenV2) } +func (s *HandlerSuite) TestValidateRemoteToken(c *check.C) { + saltedToken, err := auth.SaltToken(arvadostest.ActiveTokenV2, "abcde") + c.Assert(err, check.IsNil) + for _, trial := range []struct { + code int + token string + }{ + {http.StatusOK, saltedToken}, + {http.StatusUnauthorized, "bogus"}, + } { + req := httptest.NewRequest("GET", "https://0.0.0.0:1/arvados/v1/users/current?remote=abcde", nil) + req.Header.Set("Authorization", "Bearer "+trial.token) + resp := httptest.NewRecorder() + s.handler.ServeHTTP(resp, req) + if !c.Check(resp.Code, check.Equals, trial.code) { + c.Logf("HTTP %d: %s", resp.Code, resp.Body.String()) + } + } +} + func (s *HandlerSuite) TestCreateAPIToken(c *check.C) { req := httptest.NewRequest("GET", "/arvados/v1/users/current", nil) auth, err := s.handler.(*Handler).createAPItoken(req, arvadostest.ActiveUserUUID, nil) diff --git a/sdk/go/arvados/api.go b/sdk/go/arvados/api.go index 5c8d4f629a..0c5d32e8b7 100644 --- a/sdk/go/arvados/api.go +++ b/sdk/go/arvados/api.go @@ -64,6 +64,7 @@ type GetOptions struct { Select []string `json:"select"` IncludeTrash bool `json:"include_trash"` ForwardedFor string `json:"forwarded_for"` + Remote string `json:"remote"` } type UntrashOptions struct { -- 2.30.2